<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="Robot Framework 3.0.2 (Python 2.7.6 on linux2)" name="Generator">
<link rel="icon" type="image/x-icon" href="">
<style media="all" type="text/css">
body {
    background: white;
    color: black;
    font-size: small;
    font-family: sans-serif;
    padding: 0 0.5em;
}
.metadata th {
    text-align: left;
    padding-right: 1em;
}
a.name, span.name {
    font-style: italic;
}
a, a:link, a:visited {
    color: #c30;
}
a img {
    border: 1px solid #c30 !important;
}
a:hover, a:active {
    text-decoration: underline;
    color: black;
}
a:hover {
    text-decoration: underline !important;
}
.shortcuts {
    margin: 1em 0;
    font-size: 0.9em;
}
.shortcuts a {
    display: inline-block;
    text-decoration: none;
    white-space: nowrap;
    color: black;
}
.shortcuts a::first-letter {
    font-weight: bold;
    letter-spacing: 0.1em;
}
.normal-first-letter::first-letter {
    font-weight: normal !important;
    letter-spacing: 0 !important;
}
.keywords {
    border: 1px solid #ccc;
    border-collapse: collapse;
    empty-cells: show;
    margin: 0.3em 0;
    width: 100%;
}
.keywords th, .keywords td {
    border: 1px solid #ccc;
    padding: 0.2em;
    vertical-align: top;
}
.keywords th {
    background: #ddd;
    color: black;
}
.kw, .args, .tags {
    min-width: 100px;
    max-width: 20%;
}
td.kw a {
    color: inherit;
    text-decoration: none;
    font-weight: bold;
}
.args span {
    font-style: italic;
    padding: 0 0.1em;
}
.tags a {
    color: inherit;
    text-decoration: none;
    padding: 0 0.1em;
}
.footer {
    font-size: 0.9em;
}
/* Docs originating from HTML and reST are wrapped to divs. */
.doc div > *:first-child {
    margin-top: 0;
}
.doc div > *:last-child {    /* Does not work with IE8. */
    margin-bottom: 0;
}
#search, #open-search {
    position: fixed;
    bottom: 5px;
    right: 5px;
    z-index: 1000;
}
#search {
    width: 30em;
    display: none;
}
#open-search {
    border: 2px solid #ccc;
    border-radius: 4px;
    width: 40px;
    height: 40px;
    background-color: white;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url();
    background-image: url(), none;
    background-size: 24px 24px;
}
#open-search:hover {
    background-color: #ccc;
}
fieldset {
    background: white;
    border: 2px solid #ccc;
    border-radius: 4px;
    padding: 6px 8px;
}
fieldset fieldset {
    border: 1px solid #ccc;
    margin: 4px 0;
}
#search-title {
    font-size: 1.1em;
    font-weight: bold;
    letter-spacing: 1px;
}
#search-string {
    box-sizing: border-box;
    width: 100%;
}
#hide-unmatched {
    margin: 0.5em 0 0 1em;
}
#search-buttons {
    float: right;
}
.highlight {
    background: yellow;
}
.no-match {
    color: gray !important;
}
tr.no-match.hide-unmatched {
    display: none;
}
</style>
<style media="all" type="text/css">
/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
     pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
*/
.code .hll { background-color: #ffffcc }
.code  { background: #f8f8f8; }
.code .c { color: #408080; font-style: italic } /* Comment */
.code .err { border: 1px solid #FF0000 } /* Error */
.code .k { color: #008000; font-weight: bold } /* Keyword */
.code .o { color: #666666 } /* Operator */
.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.code .cp { color: #BC7A00 } /* Comment.Preproc */
.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
.code .cs { color: #408080; font-style: italic } /* Comment.Special */
.code .gd { color: #A00000 } /* Generic.Deleted */
.code .ge { font-style: italic } /* Generic.Emph */
.code .gr { color: #FF0000 } /* Generic.Error */
.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.code .gi { color: #00A000 } /* Generic.Inserted */
.code .go { color: #888888 } /* Generic.Output */
.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.code .gs { font-weight: bold } /* Generic.Strong */
.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.code .gt { color: #0044DD } /* Generic.Traceback */
.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.code .kp { color: #008000 } /* Keyword.Pseudo */
.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.code .kt { color: #B00040 } /* Keyword.Type */
.code .m { color: #666666 } /* Literal.Number */
.code .s { color: #BA2121 } /* Literal.String */
.code .na { color: #7D9029 } /* Name.Attribute */
.code .nb { color: #008000 } /* Name.Builtin */
.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.code .no { color: #880000 } /* Name.Constant */
.code .nd { color: #AA22FF } /* Name.Decorator */
.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.code .nf { color: #0000FF } /* Name.Function */
.code .nl { color: #A0A000 } /* Name.Label */
.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
.code .nv { color: #19177C } /* Name.Variable */
.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.code .w { color: #bbbbbb } /* Text.Whitespace */
.code .mb { color: #666666 } /* Literal.Number.Bin */
.code .mf { color: #666666 } /* Literal.Number.Float */
.code .mh { color: #666666 } /* Literal.Number.Hex */
.code .mi { color: #666666 } /* Literal.Number.Integer */
.code .mo { color: #666666 } /* Literal.Number.Oct */
.code .sb { color: #BA2121 } /* Literal.String.Backtick */
.code .sc { color: #BA2121 } /* Literal.String.Char */
.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.code .s2 { color: #BA2121 } /* Literal.String.Double */
.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.code .sx { color: #008000 } /* Literal.String.Other */
.code .sr { color: #BB6688 } /* Literal.String.Regex */
.code .s1 { color: #BA2121 } /* Literal.String.Single */
.code .ss { color: #19177C } /* Literal.String.Symbol */
.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
.code .vc { color: #19177C } /* Name.Variable.Class */
.code .vg { color: #19177C } /* Name.Variable.Global */
.code .vi { color: #19177C } /* Name.Variable.Instance */
.code .il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
<style media="print" type="text/css">
body {
    margin: 0;
    padding: 0;
    font-size: 8pt;
}
a {
    text-decoration: none;
}
#search, #open-search {
    display: none;
}
</style>
<style media="all" type="text/css">
#javascript-disabled {
    width: 600px;
    margin: 100px auto 0 auto;
    padding: 20px;
    color: black;
    border: 1px solid #ccc;
    background: #eee;
}
#javascript-disabled h1 {
    width: 100%;
    float: none;
}
#javascript-disabled ul {
    font-size: 1.2em;
}
#javascript-disabled li {
    margin: 0.5em 0;
}
#javascript-disabled b {
    font-style: italic;
}
</style>
<style media="all" type="text/css">
.doc > * {
    margin: 0.7em 1em 0.1em 1em;
    padding: 0;
}
.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
    margin: 0.7em 0 0.1em 0;
}
.doc > *:first-child {
    margin-top: 0.1em;
}
.doc table {
    border: 1px solid #ccc;
    background: transparent;
    border-collapse: collapse;
    empty-cells: show;
    font-size: 0.9em;
}
.doc table th, .doc table td {
    border: 1px solid #ccc;
    background: transparent;
    padding: 0.1em 0.3em;
    height: 1.2em;
}
.doc table th {
    text-align: center;
    letter-spacing: 0.1em;
}
.doc pre {
    font-size: 1.1em;
    letter-spacing: 0.05em;
    background: #f4f4f4;
}
.doc code {
    padding: 0 0.2em;
    letter-spacing: 0.05em;
    background: #eee;
}
.doc li {
    list-style-position: inside;
    list-style-type: square;
}
.doc img {
    border: 1px solid #ccc;
}
.doc hr {
    background: #ccc;
    height: 1px;
    border: 0;
}
</style>
<script type="text/javascript">
window.util = function () {
    function map(elems, func) {
        var ret = [];
        for (var i = 0, len = elems.length; i < len; i++) {
            ret[i] = func(elems[i]);
        }
        return ret;
    }
    function filter(elems, predicate) {
        var ret = [];
        for (var i = 0, len = elems.length; i < len; i++) {
            if (predicate(elems[i]))
                ret.push(elems[i]);
        }
        return ret;
    }
    function all(elems) {
        for (var i = 0, len = elems.length; i < len; i++) {
            if (!elems[i])
                return false;
        }
        return true;
    }
    function any(elems) {
        for (var i = 0, len = elems.length; i < len; i++) {
            if (elems[i])
                return elems[i];
        }
        return false;
    }
    function contains(elems, e) {
        for (var i = 0, len = elems.length; i < len; i++) {
            if (elems[i] == e)
                return true;
        }
        return false;
    }
    function last(items) {
        return items[items.length-1];
    }
    function unescape(string) {
        return string.replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&');
    }
    function escape(string) {
        return string.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    }
    function normalize(string) {
        return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
    }
    function regexpEscape(string) {
        return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
    }
    function Matcher(pattern) {
        pattern = regexpEscape(normalize(pattern));
        var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
        var regexp = new RegExp(rePattern);
        function matches(string) {
            return regexp.test(normalize(string));
        }
        return {
            matches: matches,
            matchesAny: function (strings) {
                for (var i = 0, len = strings.length; i < len; i++)
                    if (matches(strings[i]))
                        return true;
                return false;
            }
        };
    }
    function formatParentName(item) {
        var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
        return parentName.replace(/\./g, ' . ');
    }
    function timeFromDate(date) {
        if (!date)
            return 'N/A';
        return formatTime(date.getHours(), date.getMinutes(),
                          date.getSeconds(), date.getMilliseconds());
    }
    function dateFromDate(date) {
        if (!date)
            return 'N/A';
        return padTo(date.getFullYear(), 4) +
               padTo(date.getMonth() + 1, 2) +
               padTo(date.getDate(), 2);
    }
    function dateTimeFromDate(date) {
        if (!date)
            return 'N/A';
        return dateFromDate(date) + ' ' + timeFromDate(date);
    }
    function formatTime(hours, minutes, seconds, milliseconds) {
        return padTo(hours, 2) + ':' +
               padTo(minutes, 2) + ':' +
               padTo(seconds, 2) + '.' +
               padTo(milliseconds, 3);
    }
    function formatElapsed(elapsed) {
        var millis = elapsed;
        var hours = Math.floor(millis / (60 * 60 * 1000));
        millis -= hours * 60 * 60 * 1000;
        var minutes = Math.floor(millis / (60 * 1000));
        millis -= minutes * 60 * 1000;
        var seconds = Math.floor(millis / 1000);
        millis -= seconds * 1000;
        return formatTime(hours, minutes, seconds, millis);
    }
    function padTo(number, len) {
        var numString = number + "";
        while (numString.length < len) numString = "0" + numString;
        return numString;
    }
    function timestamp(millis) {
        // used also by tools that do not set window.output.baseMillis
        var base = window.output ? window.output.baseMillis : 0;
        return new Date(base + millis);
    }
    function createGeneratedString(timestamp) {
        var date = new Date(timestamp);
        var dt = dateTimeFromDate(date).slice(0, 17);  // drop millis
        var offset = date.getTimezoneOffset();
        var sign = offset > 0 ? '-' : '+';
        var hours = Math.floor(Math.abs(offset) / 60);
        var mins = Math.abs(offset) % 60;
        return dt + ' GMT' + sign + padTo(hours, 2) + ':' + padTo(mins, 2);
    }
    function createGeneratedAgoString(timestamp) {
        function timeString(time, shortUnit) {
            var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
                        s: 'second'}[shortUnit];
            var end = time == 1 ? ' ' : 's ';
            return time + ' ' + unit + end;
        }
        function compensateLeapYears(days, years) {
            // Not a perfect algorithm but ought to be enough
            return days - Math.floor(years / 4);
        }
        var generated = Math.round(timestamp / 1000);
        var current = Math.round(new Date().getTime() / 1000);
        var elapsed = current - generated;
        var prefix = '';
        if (elapsed < 0) {
            prefix = '- ';
            elapsed = Math.abs(elapsed);
        }
        var secs  = elapsed % 60;
        var mins  = Math.floor(elapsed / 60) % 60;
        var hours = Math.floor(elapsed / (60*60)) % 24;
        var days  = Math.floor(elapsed / (60*60*24)) % 365;
        var years = Math.floor(elapsed / (60*60*24*365));
        if (years) {
            days = compensateLeapYears(days, years);
            return prefix + timeString(years, 'y') + timeString(days, 'd');
        } else if (days) {
            return prefix + timeString(days, 'd') + timeString(hours, 'h');
        } else if (hours) {
            return prefix + timeString(hours, 'h') + timeString(mins, 'm');
        } else if (mins) {
            return prefix + timeString(mins, 'm') + timeString(secs, 's');
        } else {
            return prefix + timeString(secs, 's');
        }
    }
    function parseQueryString(query) {
        var result = {};
        if (!query)
            return result;
        var params = query.split('&');
        var parts;
        function decode(item) {
            return decodeURIComponent(item.replace('+', ' '));
        }
        for (var i = 0, len = params.length; i < len; i++) {
            parts = params[i].split('=');
            result[decode(parts.shift())] = decode(parts.join('='));
        }
        return result;
    }
    return {
        map: map,
        filter: filter,
        all: all,
        any: any,
        contains: contains,
        last: last,
        escape: escape,
        unescape: unescape,
        normalize: normalize,
        regexpEscape: regexpEscape,
        Matcher: Matcher,
        formatParentName: formatParentName,
        timeFromDate: timeFromDate,
        dateFromDate: dateFromDate,
        dateTimeFromDate: dateTimeFromDate,
        formatElapsed: formatElapsed,
        timestamp: timestamp,
        createGeneratedString: createGeneratedString,
        createGeneratedAgoString: createGeneratedAgoString,
        parseQueryString: parseQueryString
    };
}();
</script>
<script type="text/javascript">
/*! jQuery v1.8.3 jquery.com | jquery.org/license */
(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
</script>
<script type="text/javascript">
/*
 * jQuery Templates Plugin 1.0.0pre
 * http://github.com/jquery/jquery-tmpl
 * Requires jQuery 1.4.2
 *
 * Copyright Software Freedom Conservancy, Inc.
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 */
(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
</script>
<script type="text/javascript">
/*
 * jQuery Highlight plugin
 *
 * Based on highlight v3 by Johann Burkard
 * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
 *
 * Copyright (c) 2009 Bartek Szopka
 *
 * Licensed under MIT license.
 */
jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
</script>
<script type="text/javascript">
libdoc = {"all_tags":[],"contains_tags":false,"doc":"<hr>\n<p><b>NOTE:\x3c/b> Selenium2Library has been renamed to SeleniumLibrary since version 3.0. Nowadays Selenium2Library is just a thin wrapper to SeleniumLibrary that eases with transitioning to the new project. See <a href=\"https://github.com/robotframework/SeleniumLibrary\">SeleniumLibrary\x3c/a> and <a href=\"https://github.com/robotframework/Selenium2Library\">Selenium2Library\x3c/a> project pages for more information.\x3c/p>\n<hr>\n<p>Selenium2Library is a web testing library for Robot Framework.\x3c/p>\n<p>This document explains how to use keywords provided by Selenium2Library. For information about installation, support, and more, please visit the <a href=\"https://github.com/robotframework/Selenium2Library\">project pages\x3c/a>. For more information about Robot Framework, see <a href=\"http://robotframework.org\">http://robotframework.org\x3c/a>.\x3c/p>\n<p>Selenium2Library uses the Selenium WebDriver modules internally to control a web browser. See <a href=\"http://seleniumhq.org\">http://seleniumhq.org\x3c/a> for more information about Selenium in general.\x3c/p>\n<h3 id=\"Table of contents\">Table of contents\x3c/h3>\n<ul>\n<li><a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a>\x3c/li>\n<li><a href=\"#Timeouts%2C%20waits%20and%20delays\" class=\"name\">Timeouts, waits and delays\x3c/a>\x3c/li>\n<li><a href=\"#Run-on-failure%20functionality\" class=\"name\">Run-on-failure functionality\x3c/a>\x3c/li>\n<li><a href=\"#Boolean%20arguments\" class=\"name\">Boolean arguments\x3c/a>\x3c/li>\n<li><a href=\"#Importing\" class=\"name\">Importing\x3c/a>\x3c/li>\n<li><a href=\"#Shortcuts\" class=\"name\">Shortcuts\x3c/a>\x3c/li>\n<li><a href=\"#Keywords\" class=\"name\">Keywords\x3c/a>\x3c/li>\n\x3c/ul>\n<h2 id=\"Locating elements\">Locating elements\x3c/h2>\n<p>All keywords in Selenium2Library that need to interact with an element on a web page take an argument typically named <code>locator\x3c/code> that specifies how to find the element. Most often the locator is given as a string using the locator syntax described below, but <a href=\"#Using%20WebElements\" class=\"name\">using WebElements\x3c/a> is possible too.\x3c/p>\n<h3 id=\"Locator syntax\">Locator syntax\x3c/h3>\n<p>Selenium2Library supports finding elements based on different strategies such as the element id, XPath expressions, or CSS selectors. The strategy can either be explicitly specified with a prefix or the strategy can be implicit.\x3c/p>\n<h4 id=\"Default locator strategy\">Default locator strategy\x3c/h4>\n<p>By default locators are considered to use the keyword specific default locator strategy. All keywords support finding elements based on <code>id\x3c/code> and <code>name\x3c/code> attributes, but some keywords support additional attributes or other values that make sense in their context. For example, <a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a> supports the <code>href\x3c/code> attribute and the link text and addition to the normal <code>id\x3c/code> and <code>name\x3c/code>.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td># Match based on <code>id\x3c/code> or <code>name\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td># Match also based on link text and <code>href\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Button\" class=\"name\">Click Button\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td># Match based on <code>id\x3c/code>, <code>name\x3c/code> or <code>value\x3c/code>.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If a locator accidentally starts with a prefix recognized as <a href=\"#Explicit%20locator%20strategy\" class=\"name\">explicit locator strategy\x3c/a> or <a href=\"#Implicit%20XPath%20strategy\" class=\"name\">implicit XPath strategy\x3c/a>, it is possible to use the explicit <code>default\x3c/code> prefix to enable the default strategy.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>name:foo\x3c/td>\n<td># Find element with name <code>foo\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>default:name:foo\x3c/td>\n<td># Use default strategy with value <code>name:foo\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>//foo\x3c/td>\n<td># Find element using XPath <code>//foo\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>default: //foo\x3c/td>\n<td># Use default strategy with value <code>//foo\x3c/code>.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h4 id=\"Explicit locator strategy\">Explicit locator strategy\x3c/h4>\n<p>The explicit locator strategy is specified with a prefix using either syntax <code>strategy:value\x3c/code> or <code>strategy=value\x3c/code>. The former syntax is preferred, because the latter is identical to Robot Framework's <a href=\"http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#named-argument-syntax\">named argument syntax\x3c/a> and that can cause problems. Spaces around the separator are ignored, so <code>id:foo\x3c/code>, <code>id: foo\x3c/code> and <code>id : foo\x3c/code> are all equivalent.\x3c/p>\n<p>Locator strategies that are supported by default are listed in the table below. In addition to them, it is possible to register <a href=\"#Custom%20locators\" class=\"name\">custom locators\x3c/a>.\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Strategy\x3c/th>\n<th>Match based on\x3c/th>\n<th>Example\x3c/th>\n\x3c/tr>\n<tr>\n<td>id\x3c/td>\n<td>Element <code>id\x3c/code>.\x3c/td>\n<td><code>id:example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td><code>name\x3c/code> attribute.\x3c/td>\n<td><code>name:example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>identifier\x3c/td>\n<td>Either <code>id\x3c/code> or <code>name\x3c/code>.\x3c/td>\n<td><code>identifier:example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>class\x3c/td>\n<td>Element <code>class\x3c/code>.\x3c/td>\n<td><code>class:example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>tag\x3c/td>\n<td>Tag name.\x3c/td>\n<td><code>tag:div\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>xpath\x3c/td>\n<td>XPath expression.\x3c/td>\n<td><code>xpath://div[@id=\"example\"]\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>css\x3c/td>\n<td>CSS selector.\x3c/td>\n<td><code>css:div#example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>dom\x3c/td>\n<td>DOM expression.\x3c/td>\n<td><code>dom:document.images[5]\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>link\x3c/td>\n<td>Exact text a link has.\x3c/td>\n<td><code>link:The example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>partial link\x3c/td>\n<td>Partial link text.\x3c/td>\n<td><code>partial link:he ex\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>sizzle\x3c/td>\n<td>Sizzle selector provided by jQuery.\x3c/td>\n<td><code>sizzle:div.example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>jquery\x3c/td>\n<td>Same as the above.\x3c/td>\n<td><code>jquery:div.example\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>default\x3c/td>\n<td>Keyword specific default behavior.\x3c/td>\n<td><code>default:example\x3c/code>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See the <a href=\"#Default%20locator%20strategy\" class=\"name\">Default locator strategy\x3c/a> section below for more information about how the default strategy works. Using the explicit <code>default\x3c/code> prefix is only necessary if the locator value itself accidentally matches some of the explicit strategies.\x3c/p>\n<p>Different locator strategies have different pros and cons. Using ids, either explicitly like <code>id:foo\x3c/code> or by using the <a href=\"#Default%20locator%20strategy\" class=\"name\">default locator strategy\x3c/a> simply like <code>foo\x3c/code>, is recommended when possible, because the syntax is simple and locating elements by an id is fast for browsers. If an element does not have an id or the id is not stable, other solutions need to be used. If an element has a unique tag name or class, using <code>tag\x3c/code>, <code>class\x3c/code> or <code>css\x3c/code> strategy like <code>tag:h1\x3c/code>, <code>class:example\x3c/code> or <code>css:h1.example\x3c/code> is often an easy solution. In more complex cases using XPath expressions is typically the best approach. They are very powerful but a downside is that they can also get complex.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>id:foo\x3c/td>\n<td># Element with id 'foo'.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>css:div#foo h1\x3c/td>\n<td># h1 element under div with id 'foo'.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>xpath: //div[@id=\"foo\"]//h1\x3c/td>\n<td># Same as the above using XPath, not CSS.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>xpath: //*[contains(text(), \"example\")]\x3c/td>\n<td># Element containing text 'example'.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><b>NOTE:\x3c/b>\x3c/p>\n<ul>\n<li>The <code>strategy:value\x3c/code> syntax is only supported by Selenium2Library 3.0 and newer.\x3c/li>\n<li>Using the <code>sizzle\x3c/code> strategy or its alias <code>jquery\x3c/code> requires that the system under test contains the jQuery library.\x3c/li>\n<li>Prior to Selenium2Library 3.0, table related keywords only supported <code>xpath\x3c/code>, <code>css\x3c/code> and <code>sizzle/jquery\x3c/code> strategies.\x3c/li>\n\x3c/ul>\n<h4 id=\"Implicit XPath strategy\">Implicit XPath strategy\x3c/h4>\n<p>If the locator starts with <code>//\x3c/code> or <code>(//\x3c/code>, the locator is considered to be an XPath expression. In other words, using <code>//div\x3c/code> is equivalent to using explicit <code>xpath://div\x3c/code>.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>//div[@id=\"foo\"]//h1\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>(//div)[2]\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The support for the <code>(//\x3c/code> prefix is new in Selenium2Library 3.0.\x3c/p>\n<h3 id=\"Using WebElements\">Using WebElements\x3c/h3>\n<p>In addition to specifying a locator as a string, it is possible to use Selenium's WebElement objects. This requires first getting a WebElement, for example, by using the <a href=\"#Get%20WebElement\" class=\"name\">Get WebElement\x3c/a> keyword.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${elem} =\x3c/td>\n<td><a href=\"#Get%20WebElement\" class=\"name\">Get WebElement\x3c/a>\x3c/td>\n<td>id:example\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>${elem}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Custom locators\">Custom locators\x3c/h3>\n<p>If more complex lookups are required than what is provided through the default locators, custom lookup strategies can be created. Using custom locators is a two part process. First, create a keyword that returns a WebElement that should be acted on:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Custom Locator Strategy\x3c/td>\n<td>[Arguments]\x3c/td>\n<td>${browser}\x3c/td>\n<td>${strategy}\x3c/td>\n<td>${tag}\x3c/td>\n<td>${constraints}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>${element}=\x3c/td>\n<td>Execute Javascript\x3c/td>\n<td>return window.document.getElementById('${criteria}');\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>[Return]\x3c/td>\n<td>${element}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This keyword is a reimplementation of the basic functionality of the <code>id\x3c/code> locator where <code>${browser}\x3c/code> is a reference to a WebDriver instance and <code>${strategy}\x3c/code> is name of the locator strategy. To use this locator it must first be registered by using the <a href=\"#Add%20Location%20Strategy\" class=\"name\">Add Location Strategy\x3c/a> keyword:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Add%20Location%20Strategy\" class=\"name\">Add Location Strategy\x3c/a>\x3c/td>\n<td>custom\x3c/td>\n<td>Custom Locator Strategy\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The first argument of <a href=\"#Add%20Location%20Strategy\" class=\"name\">Add Location Strategy\x3c/a> specifies the name of the strategy and it must be unique. After registering the strategy, the usage is the same as with other locators:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a>\x3c/td>\n<td>custom:example\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See the <a href=\"#Add%20Location%20Strategy\" class=\"name\">Add Location Strategy\x3c/a> keyword for more details.\x3c/p>\n<h2 id=\"Timeouts, waits and delays\">Timeouts, waits and delays\x3c/h2>\n<p>This section discusses different ways how to wait for elements to appear on web pages and to slow down execution speed otherwise. It also explains the <a href=\"#Time%20format\" class=\"name\">time format\x3c/a> that can be used when setting various timeouts, waits and delays.\x3c/p>\n<h3 id=\"Timeout\">Timeout\x3c/h3>\n<p>Selenium2Library contains various keywords that have an optional <code>timeout\x3c/code> argument that specifies how long these keywords should wait for certain events or actions. These keywords include, for example, <code>Wait ...\x3c/code> keywords and keywords related to alerts.\x3c/p>\n<p>The default timeout these keywords use can be set globally either by using the <a href=\"#Set%20Selenium%20Timeout\" class=\"name\">Set Selenium Timeout\x3c/a> keyword or with the <code>timeout\x3c/code> argument when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library. See <a href=\"#Time%20format\" class=\"name\">time format\x3c/a> below for supported timeout syntax.\x3c/p>\n<h3 id=\"Implicit wait\">Implicit wait\x3c/h3>\n<p>Implicit wait specifies the maximum time how long Selenium waits when searching for elements. It can be set by using the <a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a> keyword or with the <code>implicit_wait\x3c/code> argument when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library. See <a href=\"http://seleniumhq.org/docs/04_webdriver_advanced.html\">Selenium documentation\x3c/a> for more information about this functionality.\x3c/p>\n<p>See <a href=\"#Time%20format\" class=\"name\">time format\x3c/a> below for supported syntax.\x3c/p>\n<h3 id=\"Selenium speed\">Selenium speed\x3c/h3>\n<p>Selenium execution speed can be slowed down globally by using <a href=\"#Set%20Selenium%20Speed\" class=\"name\">Set Selenium speed\x3c/a> keyword. This functionality is designed to be used for demonstrating or debugging purposes. Using it to make sure that elements appear on a page is not a good idea, and the above explained timeouts and waits should be used instead.\x3c/p>\n<p>See <a href=\"#Time%20format\" class=\"name\">time format\x3c/a> below for supported syntax.\x3c/p>\n<h3 id=\"Time format\">Time format\x3c/h3>\n<p>All timeouts and waits can be given as numbers considered seconds (e.g. <code>0.5\x3c/code> or <code>42\x3c/code>) or in Robot Framework's time syntax (e.g. <code>1.5 seconds\x3c/code> or <code>1 min 30 s\x3c/code>). For more information about the time syntax see the <a href=\"http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#time-format\">Robot Framework User Guide\x3c/a>.\x3c/p>\n<h2 id=\"Run-on-failure functionality\">Run-on-failure functionality\x3c/h2>\n<p>Selenium2Library has a handy feature that it can automatically execute a keyword if any of its own keywords fails. By default it uses the <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a> keyword, but this can be changed either by using the <a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a> keyword or with the <code>run_on_failure\x3c/code> argument when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library. It is possible to use any keyword from any imported library or resource file.\x3c/p>\n<p>The run-on-failure functionality can be disabled by using a special value <code>NOTHING\x3c/code> or anything considered false (see <a href=\"#Boolean%20arguments\" class=\"name\">Boolean arguments\x3c/a>) such as <code>NONE\x3c/code>.\x3c/p>\n<h2 id=\"Boolean arguments\">Boolean arguments\x3c/h2>\n<p>Some keywords accept arguments that are handled as Boolean values true or false. If such an argument is given as a string, it is considered false if it is either empty or case-insensitively equal to <code>false\x3c/code>, <code>no\x3c/code> or <code>none\x3c/code>. Other strings are considered true regardless their value, and other argument types are tested using same <a href=\"https://docs.python.org/2/library/stdtypes.html#truth-value-testing\">rules as in Python\x3c/a>.\x3c/p>\n<p>True examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=True\x3c/td>\n<td># Strings are generally true.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=yes\x3c/td>\n<td># Same as the above.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=${TRUE}\x3c/td>\n<td># Python True is true.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=${42}\x3c/td>\n<td># Numbers other than 0 are true.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>False examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=False\x3c/td>\n<td># String false is false.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=no\x3c/td>\n<td># Also string no is false.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=NONE\x3c/td>\n<td># String NONE is false.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=${EMPTY}\x3c/td>\n<td># Empty string is false.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=${FALSE}\x3c/td>\n<td># Python False is false.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a>\x3c/td>\n<td>${RESULTS}\x3c/td>\n<td>persist=${NONE}\x3c/td>\n<td># Python None is false.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Note that prior to Selenium2Library 3.0, all non-empty strings, including <code>false\x3c/code>, <code>no\x3c/code> and <code>none\x3c/code>, were considered true.\x3c/p>","generated":"2017-12-04 13:48:01","inits":[{"args":["timeout=5.0","implicit_wait=0.0","run_on_failure=Capture Page Screenshot","screenshot_root_directory=None"],"doc":"<p>Selenium2Library can be imported with several optional arguments.\x3c/p>\n<ul>\n<li><code>timeout\x3c/code>: Default value for <span class=\"name\">timeouts\x3c/span> used with <code>Wait ...\x3c/code> keywords.\x3c/li>\n<li><code>implicit_wait\x3c/code>: Default value for <a href=\"#Implicit%20wait\" class=\"name\">implicit wait\x3c/a> used when locating elements.\x3c/li>\n<li><code>run_on_failure\x3c/code>: Default action for the <a href=\"#Run-on-failure%20functionality\" class=\"name\">run-on-failure functionality\x3c/a>.\x3c/li>\n<li><code>screenshot_root_directory\x3c/code>: Location where possible screenshots are created. If not given, the directory where the log file is written is used.\x3c/li>\n\x3c/ul>","matched":true,"name":"Init","shortdoc":"Selenium2Library can be imported with several optional arguments.","tags":[]}],"keywords":[{"args":["name","value","path=None","domain=None","secure=None","expiry=None"],"doc":"<p>Adds a cookie to your current session.\x3c/p>\n<p><code>name\x3c/code> and <code>value\x3c/code> are required, <code>path\x3c/code>, <code>domain\x3c/code>, <code>secure\x3c/code> and <code>expiry\x3c/code> are optional.  Expiry supports the same formats as the <a href=\"http://robotframework.org/robotframework/latest/libraries/DateTime.html\">DateTime\x3c/a> library or an epoch time stamp.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>domain=example.com\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>expiry=2027-09-28 16:21:35\x3c/td>\n<td># Expiry as timestamp.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>expiry=1822137695\x3c/td>\n<td># Expiry as epoch seconds.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Prior to Selenium2Library 3.0 setting expiry did not work.\x3c/p>","matched":true,"name":"Add Cookie","shortdoc":"Adds a cookie to your current session.","tags":[]},{"args":["strategy_name","strategy_keyword","persist=False"],"doc":"<p>Adds a custom location strategy.\x3c/p>\n<p>See <a href=\"#Custom%20locators\" class=\"name\">Custom locators\x3c/a> for information how to create and use custom strategies. <a href=\"#Remove%20Location%20Strategy\" class=\"name\">Remove Location Strategy\x3c/a> can be used to remove a registered strategy.\x3c/p>\n<p>Location strategies are automatically removed after leaving the current scope by default. Setting <code>persist\x3c/code> to a true value (see <a href=\"#Boolean%20arguments\" class=\"name\">Boolean arguments\x3c/a>) will cause the location strategy to stay registered throughout the life of the test.\x3c/p>","matched":true,"name":"Add Location Strategy","shortdoc":"Adds a custom location strategy.","tags":[]},{"args":["text=","action=ACCEPT","timeout=None"],"doc":"<p>Verifies that an alert is present and, by default, accepts it.\x3c/p>\n<p>Fails if no alert is present. If <code>text\x3c/code> is a non-empty string, then it is used to verify alert's message. The alert is accepted by default, but that behavior can be controlled by using the <code>action\x3c/code> argument same way as with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a>.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. If it is not given, the global default <a href=\"#Timeout\" class=\"name\">timeout\x3c/a> is used instead.\x3c/p>\n<p><code>action\x3c/code> and <code>timeout\x3c/code> arguments are new in Selenium2Library 3.0. In earlier versions the alert was always accepted and timeout was hard coded to one second.\x3c/p>","matched":true,"name":"Alert Should Be Present","shortdoc":"Verifies that an alert is present and, by default, accepts it.","tags":[]},{"args":["action=ACCEPT","timeout=0"],"doc":"<p>Verifies that no alert is present.\x3c/p>\n<p>If the alert actually exists, the <code>action\x3c/code> argument determines how it should be handled. By default the alert is accepted, but it can be also dismissed or left open the same way as with the <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> keyword.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. By default the alert is not waited at all, but a custom time can be given if alert may be delayed. See the <a href=\"#Time%20format\" class=\"name\">time format\x3c/a> section for information about the syntax.\x3c/p>\n<p>New in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Alert Should Not Be Present","shortdoc":"Verifies that no alert is present.","tags":[]},{"args":["locator","id"],"doc":"<p>Assigns temporary <code>id\x3c/code> to element specified by <code>locator\x3c/code>.\x3c/p>\n<p>This is mainly useful if the locator is complicated and/or slow XPath expression and it is needed multiple times. Identifier expires when the page is reloaded.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Assign%20Id%20To%20Element\" class=\"name\">Assign ID to Element\x3c/a>\x3c/td>\n<td>//ul[@class='example' and ./li[contains(., 'Stuff')]]\x3c/td>\n<td>my id\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>my id\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Assign Id To Element","shortdoc":"Assigns temporary ``id`` to element specified by ``locator``.","tags":[]},{"args":["filename=selenium-screenshot-{index}.png"],"doc":"<p>Takes screenshot of the current page and embeds it into log file.\x3c/p>\n<p><code>filename\x3c/code> argument specifies the name of the file to write the screenshot into. The directory where screenshots are saved can be set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library or by using the <a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a> keyword. If the directory is not configured, screenshots are saved to the same directory where Robot Framework's log file is written.\x3c/p>\n<p>Starting from Selenium2Library 1.8, if <code>filename\x3c/code> contains marker <code>{index}\x3c/code>, it will be automatically replaced with unique running index preventing files to be overwritten. Indices start from 1, and how they are represented can be customized using Python's <a href=\"https://docs.python.org/2/library/string.html#formatstrings\">format string syntax\x3c/a>.\x3c/p>\n<p>An absolute path to the created screenshot file is returned.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/selenium-screenshot-1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td>${path} =\x3c/td>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/selenium-screenshot-2.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${path}\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>custom_name.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/custom_name.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>custom_with_index_{index}.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/custom_with_index_1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>formatted_index_{index:03}.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/formatted_index_001.png\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Capture Page Screenshot","shortdoc":"Takes screenshot of the current page and embeds it into log file.","tags":[]},{"args":["locator"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is selected/checked.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Checkbox Should Be Selected","shortdoc":"Verifies checkbox ``locator`` is selected/checked.","tags":[]},{"args":["locator"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is not selected/checked.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax..\x3c/p>","matched":true,"name":"Checkbox Should Not Be Selected","shortdoc":"Verifies checkbox ``locator`` is not selected/checked.","tags":[]},{"args":[],"doc":"<p>Deprecated. Use <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> directly instead.\x3c/p>\n<p>In versions prior to Selenium2Library 3.0, the alert handling approach needed to be set separately before using the <a href=\"#Confirm%20Action\" class=\"name\">Confirm Action\x3c/a> keyword. New <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> keyword accepts the action how to handle the alert as a normal argument and should be used instead.\x3c/p>","matched":true,"name":"Choose Cancel On Next Confirmation","shortdoc":"Deprecated. Use `Handle Alert` directly instead.","tags":[]},{"args":["locator","file_path"],"doc":"<p>Inputs the <code>file_path\x3c/code> into file input field <code>locator\x3c/code>.\x3c/p>\n<p>This keyword is most often used to input files into upload forms. The file specified with <code>file_path\x3c/code> must be available on machine where tests are executed.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Choose%20File\" class=\"name\">Choose File\x3c/a>\x3c/td>\n<td>my_upload_field\x3c/td>\n<td>${CURDIR}/trades.csv\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Choose File","shortdoc":"Inputs the ``file_path`` into file input field ``locator``.","tags":[]},{"args":[],"doc":"<p>Deprecated. Use <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> directly instead.\x3c/p>\n<p>In versions prior to Selenium2Library 3.0, the alert handling approach needed to be set separately before using the <a href=\"#Confirm%20Action\" class=\"name\">Confirm Action\x3c/a> keyword. New <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> keyword accepts the action how to handle the alert as a normal argument and should be used instead.\x3c/p>","matched":true,"name":"Choose Ok On Next Confirmation","shortdoc":"Deprecated. Use `Handle Alert` directly instead.","tags":[]},{"args":["locator"],"doc":"<p>Clears the value of text entry element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Clear Element Text","shortdoc":"Clears the value of text entry element identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Clicks button identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Click Button","shortdoc":"Clicks button identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Click element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Click Element","shortdoc":"Click element identified by ``locator``.","tags":[]},{"args":["locator","xoffset","yoffset"],"doc":"<p>Click element <code>locator\x3c/code> at <code>xoffset/yoffset\x3c/code>.\x3c/p>\n<p>Cursor is moved and the center of the element and x/y coordinates are calculated from that point.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Click Element At Coordinates","shortdoc":"Click element ``locator`` at ``xoffset/yoffset``.","tags":[]},{"args":["locator"],"doc":"<p>Clicks an image identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>","matched":true,"name":"Click Image","shortdoc":"Clicks an image identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Clicks a link identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>","matched":true,"name":"Click Link","shortdoc":"Clicks a link identified by ``locator``.","tags":[]},{"args":[],"doc":"<p>Closes all open browsers and resets the browser cache.\x3c/p>\n<p>After this keyword new indexes returned from <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keyword are reset to 1.\x3c/p>\n<p>This keyword should be used in test or suite teardown to make sure all browsers are closed.\x3c/p>","matched":true,"name":"Close All Browsers","shortdoc":"Closes all open browsers and resets the browser cache.","tags":[]},{"args":[],"doc":"<p>Closes the current browser.\x3c/p>","matched":true,"name":"Close Browser","shortdoc":"Closes the current browser.","tags":[]},{"args":[],"doc":"<p>Closes currently opened pop-up window.\x3c/p>","matched":true,"name":"Close Window","shortdoc":"Closes currently opened pop-up window.","tags":[]},{"args":[],"doc":"<p>Deprecated. Use <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> instead.\x3c/p>\n<p>By default accepts an alert, but this behavior can be altered with <a href=\"#Choose%20Cancel%20On%20Next%20Confirmation\" class=\"name\">Choose Cancel On Next Confirmation\x3c/a> and <a href=\"#Choose%20Ok%20On%20Next%20Confirmation\" class=\"name\">Choose Ok On Next Confirmation\x3c/a> keywords. New <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> keyword accepts the action how to handle the alert as a normal argument and should be used instead.\x3c/p>","matched":true,"name":"Confirm Action","shortdoc":"Deprecated. Use `Handle Alert` instead.","tags":[]},{"args":["driver_name","alias=None","kwargs={}","**init_kwargs"],"doc":"<p>Creates an instance of Selenium WebDriver.\x3c/p>\n<p>Like <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>, but allows passing arguments to the created WebDriver instance directly. This keyword should only be used if functionality provided by <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> is not adequate.\x3c/p>\n<p><code>driver_name\x3c/code> must be an WebDriver implementation name like Firefox, Chrome, Ie, Opera, Safari, PhantomJS, or Remote.\x3c/p>\n<p>The initialized WebDriver can be configured either with a Python dictionary <code>kwargs\x3c/code> or by using keyword arguments <code>**init_kwargs\x3c/code>. These arguments are passed directly to WebDriver without any processing. See <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/api.html\">Selenium API documentation\x3c/a> for details about the supported arguments.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td># Use proxy with Firefox\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${proxy}=\x3c/td>\n<td><span class=\"name\">Evaluate\x3c/span>\x3c/td>\n<td>sys.modules['selenium.webdriver'].Proxy()\x3c/td>\n<td>sys, selenium.webdriver\x3c/td>\n\x3c/tr>\n<tr>\n<td>${proxy.http_proxy}=\x3c/td>\n<td><span class=\"name\">Set Variable\x3c/span>\x3c/td>\n<td>localhost:8888\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>proxy=${proxy}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td># Use proxy with PhantomJS\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${service args}=\x3c/td>\n<td><span class=\"name\">Create List\x3c/span>\x3c/td>\n<td>--proxy=192.168.132.104:8888\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a>\x3c/td>\n<td>PhantomJS\x3c/td>\n<td>service_args=${service args}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Returns the index of this browser instance which can be used later to switch back to it. Index starts from 1 and is reset back to it when <a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a> keyword is used. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for an example.\x3c/p>","matched":true,"name":"Create Webdriver","shortdoc":"Creates an instance of Selenium WebDriver.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Deprecated. Use <a href=\"#Current%20Frame%20Should%20Contain\" class=\"name\">Current Frame Should Contain\x3c/a> instead.\x3c/p>","matched":true,"name":"Current Frame Contains","shortdoc":"Deprecated. Use `Current Frame Should Contain` instead.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current frame contains <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>\n<p>Prior to Selenium2Library 3.0 this keyword was named <a href=\"#Current%20Frame%20Contains\" class=\"name\">Current Frame Contains\x3c/a>.\x3c/p>","matched":true,"name":"Current Frame Should Contain","shortdoc":"Verifies that current frame contains ``text``.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current frame does not contains <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Current Frame Should Not Contain","shortdoc":"Verifies that current frame does not contains ``text``.","tags":[]},{"args":[],"doc":"<p>Deletes all cookies.\x3c/p>","matched":true,"name":"Delete All Cookies","shortdoc":"Deletes all cookies.","tags":[]},{"args":["name"],"doc":"<p>Deletes cookie matching <code>name\x3c/code>.\x3c/p>\n<p>If the cookie is not found, nothing happens.\x3c/p>","matched":true,"name":"Delete Cookie","shortdoc":"Deletes cookie matching ``name``.","tags":[]},{"args":["accept=True"],"doc":"<p>Deprecated. Use <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> instead.\x3c/p>\n<p>Contrary to its name, this keyword accepts the alert by default (i.e. presses <code>Ok\x3c/code>). <code>accept\x3c/code> can be set to a false value to dismiss the alert (i.e. to press <code>Cancel\x3c/code>).\x3c/p>\n<p><a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> has better support for controlling should the alert be accepted, dismissed, or left open.\x3c/p>","matched":true,"name":"Dismiss Alert","shortdoc":"Deprecated. Use `Handle Alert` instead.","tags":[]},{"args":["locator"],"doc":"<p>Double click element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Double Click Element","shortdoc":"Double click element identified by ``locator``.","tags":[]},{"args":["locator","target"],"doc":"<p>Drags element identified by <code>locator\x3c/code> into <code>target\x3c/code> element.\x3c/p>\n<p>The <code>locator\x3c/code> argument is the locator of the dragged element and the <code>target\x3c/code> is the locator of the target. See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Drag%20And%20Drop\" class=\"name\">Drag And Drop\x3c/a>\x3c/td>\n<td>css:div#element\x3c/td>\n<td>css:div.target\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Drag And Drop","shortdoc":"Drags element identified by ``locator`` into ``target`` element.","tags":[]},{"args":["locator","xoffset","yoffset"],"doc":"<p>Drags element identified with <code>locator\x3c/code> by <code>xoffset/yoffset\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Element will be moved by <code>xoffset\x3c/code> and <code>yoffset\x3c/code>, each of which is a negative or positive number specifying the offset.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Drag%20And%20Drop%20By%20Offset\" class=\"name\">Drag And Drop By Offset\x3c/a>\x3c/td>\n<td>myElem\x3c/td>\n<td>50\x3c/td>\n<td>-35\x3c/td>\n<td># Move myElem 50px right and 35px down\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Drag And Drop By Offset","shortdoc":"Drags element identified with ``locator`` by ``xoffset/yoffset``.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified with <code>locator\x3c/code> is disabled.\x3c/p>\n<p>This keyword considers also elements that are read-only to be disabled.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Element Should Be Disabled","shortdoc":"Verifies that element identified with ``locator`` is disabled.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified with <code>locator\x3c/code> is enabled.\x3c/p>\n<p>This keyword considers also elements that are read-only to be disabled.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Element Should Be Enabled","shortdoc":"Verifies that element identified with ``locator`` is enabled.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified with <code>locator\x3c/code> is focused.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>New in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Element Should Be Focused","shortdoc":"Verifies that element identified with ``locator`` is focused.","tags":[]},{"args":["locator","message=None"],"doc":"<p>Verifies that the element identified by <code>locator\x3c/code> is visible.\x3c/p>\n<p>Herein, visible means that the element is logically visible, not optically visible in the current browser viewport. For example, an element that carries <code>display:none\x3c/code> is not logically visible, so using this keyword on that element would fail.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>","matched":true,"name":"Element Should Be Visible","shortdoc":"Verifies that the element identified by ``locator`` is visible.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies that element <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>Use <a href=\"#Element%20Text%20Should%20Be\" class=\"name\">Element Text Should Be\x3c/a> if you want to match the exact text, not a substring.\x3c/p>","matched":true,"name":"Element Should Contain","shortdoc":"Verifies that element ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","message=None"],"doc":"<p>Verifies that the element identified by <code>locator\x3c/code> is NOT visible.\x3c/p>\n<p>Passes if element does not exists. See <a href=\"#Element%20Should%20Be%20Visible\" class=\"name\">Element Should Be Visible\x3c/a> for more information about visibility and supported arguments.\x3c/p>","matched":true,"name":"Element Should Not Be Visible","shortdoc":"Verifies that the element identified by ``locator`` is NOT visible.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies that element <code>locator\x3c/code> does not contains text <code>expected\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>","matched":true,"name":"Element Should Not Contain","shortdoc":"Verifies that element ``locator`` does not contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies that element <code>locator\x3c/code> contains exact text <code>expected\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>Use <a href=\"#Element%20Should%20Contain\" class=\"name\">Element Should Contain\x3c/a> if a substring match is desired.\x3c/p>","matched":true,"name":"Element Text Should Be","shortdoc":"Verifies that element ``locator`` contains exact text ``expected``.","tags":[]},{"args":["*code"],"doc":"<p>Executes asynchronous JavaScript code.\x3c/p>\n<p>Similar to <a href=\"#Execute%20Javascript\" class=\"name\">Execute Javascript\x3c/a> except that scripts executed with this keyword must explicitly signal they are finished by invoking the provided callback. This callback is always injected into the executed function as the last argument.\x3c/p>\n<p>Scripts must complete within the script timeout or this keyword will fail. See the <span class=\"name\">Timeouts\x3c/span> section for more information.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>var callback = arguments[arguments.length - 1]; window.setTimeout(callback, 2000);\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>${CURDIR}/async_js_to_execute.js\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${result} =\x3c/td>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>var callback = arguments[arguments.length - 1];\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>function answer(){callback(\"text\");};\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>window.setTimeout(answer, 2000);\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${result}\x3c/td>\n<td>text\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Execute Async Javascript","shortdoc":"Executes asynchronous JavaScript code.","tags":[]},{"args":["*code"],"doc":"<p>Executes the given JavaScript code.\x3c/p>\n<p><code>code\x3c/code> may contain multiple lines of code and may be divided into multiple cells in the test data. In that case, the parts are concatenated together without adding spaces.\x3c/p>\n<p>If <code>code\x3c/code> is an absolute path to an existing file, the JavaScript to execute will be read from that file. Forward slashes work as a path separator on all operating systems.\x3c/p>\n<p>The JavaScript executes in the context of the currently selected frame or window as the body of an anonymous function. Use <code>window\x3c/code> to refer to the window of your application and <code>document\x3c/code> to refer to the document object of the current frame or window, e.g. <code>document.getElementById('example')\x3c/code>.\x3c/p>\n<p>This keyword returns whatever the executed JavaScript code returns. Return values are converted to the appropriate Python types.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>window.myFunc('arg1', 'arg2')\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>${CURDIR}/js_to_execute.js\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${sum} =\x3c/td>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>return 1 + 1;\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${sum}\x3c/td>\n<td>${2}\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Execute Javascript","shortdoc":"Executes the given JavaScript code.","tags":[]},{"args":["locator"],"doc":"<p>Deprecated. Use <a href=\"#Set%20Focus%20To%20Element\" class=\"name\">Set Focus To Element\x3c/a> instead.\x3c/p>","matched":true,"name":"Focus","shortdoc":"Deprecated. Use `Set Focus To Element` instead.","tags":[]},{"args":["locator","text","loglevel=INFO"],"doc":"<p>Verifies that frame identified by <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Frame Should Contain","shortdoc":"Verifies that frame identified by ``locator`` contains ``text``.","tags":[]},{"args":["dismiss=True"],"doc":"<p>Deprecated. Use <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> instead.\x3c/p>\n<p>Returns the message the alert has. Dismisses the alert by default (i.e. presses <code>Cancel\x3c/code>) and setting <code>dismiss\x3c/code> to false leaves the alert open. There is no support to accept the alert (i.e. to press <code>Ok\x3c/code>).\x3c/p>\n<p><a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> has better support for controlling should the alert be accepted, dismissed, or left open.\x3c/p>","matched":true,"name":"Get Alert Message","shortdoc":"Deprecated. Use `Handle Alert` instead.","tags":[]},{"args":[],"doc":"<p>Returns a list containing ids of all links found in current page.\x3c/p>\n<p>If a link has no id, an empty string will be in the list instead.\x3c/p>","matched":true,"name":"Get All Links","shortdoc":"Returns a list containing ids of all links found in current page.","tags":[]},{"args":["name"],"doc":"<p>Returns information of cookie with <code>name\x3c/code> as an object.\x3c/p>\n<p>If no cookie is found with <code>name\x3c/code>, keyword fails. The cookie object contains details about the cookie. Attributes available in the object are documented in the table below.\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Attribute\x3c/th>\n<th>Explanation\x3c/th>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td>The name of a cookie.\x3c/td>\n\x3c/tr>\n<tr>\n<td>value\x3c/td>\n<td>Value of the cookie.\x3c/td>\n\x3c/tr>\n<tr>\n<td>path\x3c/td>\n<td>Indicates a URL path, for example <code>/\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td>domain\x3c/td>\n<td>The domain the cookie is visible to.\x3c/td>\n\x3c/tr>\n<tr>\n<td>secure\x3c/td>\n<td>When true, cookie is only used with HTTPS connections.\x3c/td>\n\x3c/tr>\n<tr>\n<td>httpOnly\x3c/td>\n<td>When true, cookie is not accessible via JavaScript.\x3c/td>\n\x3c/tr>\n<tr>\n<td>expiry\x3c/td>\n<td>Python datetime object indicating when the cookie expires.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See the <a href=\"https://w3c.github.io/webdriver/webdriver-spec.html#cookies\">WebDriver specification\x3c/a> for details about the cookie information. Notice that <code>expiry\x3c/code> is specified as a <a href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\">datetime object\x3c/a>, not as seconds since Unix Epoch like WebDriver natively does.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n\x3c/tr>\n<tr>\n<td>${cookie} =\x3c/td>\n<td><a href=\"#Get%20Cookie\" class=\"name\">Get Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${cookie.name}\x3c/td>\n<td>bar\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${cookie.value}\x3c/td>\n<td>foo\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be True\x3c/span>\x3c/td>\n<td>${cookie.expiry.year} &gt; 2017\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Get Cookie","shortdoc":"Returns information of cookie with ``name`` as an object.","tags":[]},{"args":["name"],"doc":"<p>Deprecated. Use <a href=\"#Get%20Cookie\" class=\"name\">Get Cookie\x3c/a> instead.\x3c/p>","matched":true,"name":"Get Cookie Value","shortdoc":"Deprecated. Use `Get Cookie` instead.","tags":[]},{"args":[],"doc":"<p>Returns all cookies of the current page.\x3c/p>\n<p>The cookie information is returned as a single string in format <code>name1=value1; name2=value2; name3=value3\x3c/code>. It can be used, for example, for logging purposes or in headers when sending HTTP requests.\x3c/p>","matched":true,"name":"Get Cookies","shortdoc":"Returns all cookies of the current page.","tags":[]},{"args":["locator","attribute=None"],"doc":"<p>Returns value of <code>attribute\x3c/code> from element <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${id}=\x3c/td>\n<td><a href=\"#Get%20Element%20Attribute\" class=\"name\">Get Element Attribute\x3c/a>\x3c/td>\n<td>css:h1\x3c/td>\n<td>id\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Passing attribute name as part of the <code>locator\x3c/code> is deprecated since Selenium2Library 3.0. The explicit <code>attribute\x3c/code> argument should be used instead.\x3c/p>","matched":true,"name":"Get Element Attribute","shortdoc":"Returns value of ``attribute`` from element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns number of elements matching <code>locator\x3c/code>.\x3c/p>\n<p>If you wish to assert the number of matching elements, use <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> with <code>limit\x3c/code> argument. Keyword will always return an integer.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${count} =\x3c/td>\n<td><a href=\"#Get%20Element%20Count\" class=\"name\">Get Element Count\x3c/a>\x3c/td>\n<td>name:div_name\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be True\x3c/span>\x3c/td>\n<td>${count} &gt; 2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Get Element Count","shortdoc":"Returns number of elements matching ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns width and height of element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Both width and height are returned as integers.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>${height} =\x3c/td>\n<td><a href=\"#Get%20Element%20Size\" class=\"name\">Get Element Size\x3c/a>\x3c/td>\n<td>css:div#container\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Element Size","shortdoc":"Returns width and height of element identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns horizontal position of element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The position is returned in pixels off the left side of the page, as an integer.\x3c/p>\n<p>See also <a href=\"#Get%20Vertical%20Position\" class=\"name\">Get Vertical Position\x3c/a>.\x3c/p>","matched":true,"name":"Get Horizontal Position","shortdoc":"Returns horizontal position of element identified by ``locator``.","tags":[]},{"args":["locator","values=False"],"doc":"<p>Returns all labels or values of selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Returns visible labels by default, but values can be returned by setting the <code>values\x3c/code> argument to a true value (see <a href=\"#Boolean%20arguments\" class=\"name\">Boolean arguments\x3c/a>).\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${labels} =\x3c/td>\n<td><a href=\"#Get%20List%20Items\" class=\"name\">Get List Items\x3c/a>\x3c/td>\n<td>mylist\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${values} =\x3c/td>\n<td><a href=\"#Get%20List%20Items\" class=\"name\">Get List Items\x3c/a>\x3c/td>\n<td>css:#example select\x3c/td>\n<td>values=True\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Support to return values is new in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Get List Items","shortdoc":"Returns all labels or values of selection list ``locator``.","tags":[]},{"args":[],"doc":"<p>Returns the current browser URL.\x3c/p>","matched":true,"name":"Get Location","shortdoc":"Returns the current browser URL.","tags":[]},{"args":[],"doc":"<p>Returns and logs URLs of all known browser windows.\x3c/p>","matched":true,"name":"Get Locations","shortdoc":"Returns and logs URLs of all known browser windows.","tags":[]},{"args":["xpath","return_str=True"],"doc":"<p>Deprecated. Use <a href=\"#Get%20Element%20Count\" class=\"name\">Get Element Count\x3c/a> instead.\x3c/p>","matched":true,"name":"Get Matching Xpath Count","shortdoc":"Deprecated. Use `Get Element Count` instead.","tags":[]},{"args":["locator"],"doc":"<p>Returns label of selected option from selection list <code>locator\x3c/code>.\x3c/p>\n<p>If there are multiple selected options, label of the first option is returned.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Label","shortdoc":"Returns label of selected option from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns labels of selected options from selection list <code>locator\x3c/code>.\x3c/p>\n<p>Starting from Selenium2Library 3.0, returns an empty list if there are no selections. In earlier versions this caused an error.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Labels","shortdoc":"Returns labels of selected options from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns value of selected option from selection list <code>locator\x3c/code>.\x3c/p>\n<p>If there are multiple selected options, value of the first option is returned.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Value","shortdoc":"Returns value of selected option from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns values of selected options from selection list <code>locator\x3c/code>.\x3c/p>\n<p>Starting from Selenium2Library 3.0, returns an empty list if there are no selections. In earlier versions this caused an error.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Values","shortdoc":"Returns values of selected options from selection list ``locator``.","tags":[]},{"args":[],"doc":"<p>Gets the implicit wait value used by Selenium.\x3c/p>\n<p>The value is returned as a human readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Implicit%20wait\" class=\"name\">Implicit wait\x3c/a> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Implicit Wait","shortdoc":"Gets the implicit wait value used by Selenium.","tags":[]},{"args":[],"doc":"<p>Gets the delay that is waited after each Selenium command.\x3c/p>\n<p>The value is returned as a human readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Selenium%20speed\" class=\"name\">Selenium Speed\x3c/a> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Speed","shortdoc":"Gets the delay that is waited after each Selenium command.","tags":[]},{"args":[],"doc":"<p>Gets the timeout that is used by various keywords.\x3c/p>\n<p>The value is returned as a human readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Timeout\" class=\"name\">Timeout\x3c/a> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Timeout","shortdoc":"Gets the timeout that is used by various keywords.","tags":[]},{"args":[],"doc":"<p>Returns the entire HTML source of the current page or frame.\x3c/p>","matched":true,"name":"Get Source","shortdoc":"Returns the entire HTML source of the current page or frame.","tags":[]},{"args":["locator","row","column","loglevel=INFO"],"doc":"<p>Returns contents of table cell.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its cell found using <code>row\x3c/code> and <code>column\x3c/code>. See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Both row and column indexes start from 1, and header and footer rows are included in the count. It is possible to refer to rows and columns from the end by using negative indexes so that -1 is the last row/column, -2 is the second last, and so on.\x3c/p>\n<p>All <code>&lt;th&gt;\x3c/code> and <code>&lt;td&gt;\x3c/code> elements anywhere in the table are considered to be cells.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Get Table Cell","shortdoc":"Returns contents of table cell.","tags":[]},{"args":["locator"],"doc":"<p>Returns the text value of element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Text","shortdoc":"Returns the text value of element identified by ``locator``.","tags":[]},{"args":[],"doc":"<p>Returns the title of current page.\x3c/p>","matched":true,"name":"Get Title","shortdoc":"Returns the title of current page.","tags":[]},{"args":["locator"],"doc":"<p>Returns the value attribute of element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Value","shortdoc":"Returns the value attribute of element identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns vertical position of element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The position is returned in pixels off the top of the page, as an integer.\x3c/p>\n<p>See also <a href=\"#Get%20Horizontal%20Position\" class=\"name\">Get Horizontal Position\x3c/a>.\x3c/p>","matched":true,"name":"Get Vertical Position","shortdoc":"Returns vertical position of element identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns the first WebElement matching the given <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get WebElement","shortdoc":"Returns the first WebElement matching the given ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns list of WebElement objects matching the <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Starting from Selenium2Library 3.0, the keyword returns an empty list if there are no matching elements. In previous releases the keyword failed in this case.\x3c/p>","matched":true,"name":"Get WebElements","shortdoc":"Returns list of WebElement objects matching the ``locator``.","tags":[]},{"args":[],"doc":"<p>Return all current window handles as a list.\x3c/p>\n<p>Can be used as a list of windows to exclude with <a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>.\x3c/p>\n<p>Prior to Selenium2Library 3.0, this keyword was named <a href=\"#List%20Windows\" class=\"name\">List Windows\x3c/a>.\x3c/p>","matched":true,"name":"Get Window Handles","shortdoc":"Return all current window handles as a list.","tags":[]},{"args":[],"doc":"<p>Returns and logs id attributes of all known browser windows.\x3c/p>","matched":true,"name":"Get Window Identifiers","shortdoc":"Returns and logs id attributes of all known browser windows.","tags":[]},{"args":[],"doc":"<p>Returns and logs names of all known browser windows.\x3c/p>","matched":true,"name":"Get Window Names","shortdoc":"Returns and logs names of all known browser windows.","tags":[]},{"args":[],"doc":"<p>Returns current window position.\x3c/p>\n<p>Position is relative to the top left corner of the screen. Returned values are integers. See also <a href=\"#Set%20Window%20Position\" class=\"name\">Set Window Position\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${x}\x3c/td>\n<td>${y}=\x3c/td>\n<td><a href=\"#Get%20Window%20Position\" class=\"name\">Get Window Position\x3c/a>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Window Position","shortdoc":"Returns current window position.","tags":[]},{"args":[],"doc":"<p>Returns current window width and height as integers.\x3c/p>\n<p>See also <a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>${height}=\x3c/td>\n<td><a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Window Size","shortdoc":"Returns current window width and height as integers.","tags":[]},{"args":[],"doc":"<p>Returns and logs titles of all known browser windows.\x3c/p>","matched":true,"name":"Get Window Titles","shortdoc":"Returns and logs titles of all known browser windows.","tags":[]},{"args":[],"doc":"<p>Simulates the user clicking the back button on their browser.\x3c/p>","matched":true,"name":"Go Back","shortdoc":"Simulates the user clicking the back button on their browser.","tags":[]},{"args":["url"],"doc":"<p>Navigates the active browser instance to the provided <code>url\x3c/code>.\x3c/p>","matched":true,"name":"Go To","shortdoc":"Navigates the active browser instance to the provided ``url``.","tags":[]},{"args":["action=ACCEPT","timeout=None"],"doc":"<p>Handles the current alert and returns its message.\x3c/p>\n<p>By default the alert is accepted, but this can be controlled with the <code>action\x3c/code> argument that supports the following case-insensitive values:\x3c/p>\n<ul>\n<li><code>ACCEPT\x3c/code>: Accept the alert i.e. press <code>Ok\x3c/code>. Default.\x3c/li>\n<li><code>DISMISS\x3c/code>: Dismiss the alert i.e. press <code>Cancel\x3c/code>.\x3c/li>\n<li><code>LEAVE\x3c/code>: Leave the alert open.\x3c/li>\n\x3c/ul>\n<p>The <code>timeout\x3c/code> argument specifies how long to wait for the alert to appear. If it is not given, the global default <a href=\"#Timeout\" class=\"name\">timeout\x3c/a> is used instead.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Handle Alert\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td># Accept alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>action=DISMISS\x3c/td>\n<td>\x3c/td>\n<td># Dismiss alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>timeout=10 s\x3c/td>\n<td>\x3c/td>\n<td># Use custom timeout and accept alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>DISMISS\x3c/td>\n<td>1 min\x3c/td>\n<td># Use custom timeout and dismiss alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${message} =\x3c/td>\n<td>Handle Alert\x3c/td>\n<td>\x3c/td>\n<td># Accept alert and get its message.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${message} =\x3c/td>\n<td>Handle Alert\x3c/td>\n<td>LEAVE\x3c/td>\n<td># Leave alert open and get its message.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Handle Alert","shortdoc":"Handles the current alert and returns its message.","tags":[]},{"args":["locator","password"],"doc":"<p>Types the given password into text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Difference compared to <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> is that this keyword does not log the given password on the INFO level. Notice that if you use the keyword like\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Input Password\x3c/td>\n<td>password_field\x3c/td>\n<td>password\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>the password is shown as a normal keyword argument. A way to avoid that is using variables like\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Input Password\x3c/td>\n<td>password_field\x3c/td>\n<td>${PASSWORD}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Notice also that Selenium2Library logs all the communication with browser drivers using the DEBUG level, and the actual password can be seen there. Additionally Robot Framework logs all arguments using the TRACE level. Tests must thus not be executed using level below INFO if password should not be logged in any format.\x3c/p>","matched":true,"name":"Input Password","shortdoc":"Types the given password into text field identified by ``locator``.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given <code>text\x3c/code> into text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Use <a href=\"#Input%20Password\" class=\"name\">Input Password\x3c/a> if you do not want the given <code>text\x3c/code> to be logged.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Input Text","shortdoc":"Types the given ``text`` into text field identified by ``locator``.","tags":[]},{"args":["text","action=ACCEPT","timeout=None"],"doc":"<p>Types the given <code>text\x3c/code> into an input field in an alert.\x3c/p>\n<p>The alert is accepted by default, but that behavior can be controlled by using the <code>action\x3c/code> argument same way as with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a>.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. If it is not given, the global default <a href=\"#Timeout\" class=\"name\">timeout\x3c/a> is used instead.\x3c/p>\n<p>New in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Input Text Into Alert","shortdoc":"Types the given ``text`` into an input field in an alert.","tags":[]},{"args":["text"],"doc":"<p>Deprecated. Use <a href=\"#Input%20Text%20Into%20Alert\" class=\"name\">Input Text Into Alert\x3c/a> instead.\x3c/p>\n<p>Types the given <code>text\x3c/code> into an input field in an alert. Leaves the alert open.\x3c/p>","matched":true,"name":"Input Text Into Prompt","shortdoc":"Deprecated. Use `Input Text Into Alert` instead.","tags":[]},{"args":["locator","*expected"],"doc":"<p>Verifies selection list <code>locator\x3c/code> has <code>expected\x3c/code> options selected.\x3c/p>\n<p>It is possible to give expected options both as visible labels and as values. Starting from Selenium2Library 3.0, mixing labels and values is not possible. Order of the selected options is not validated.\x3c/p>\n<p>If no expected options are given, validates that the list has no selections. A more explicit alternative is using <a href=\"#List%20Should%20Have%20No%20Selections\" class=\"name\">List Should Have No Selections\x3c/a>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#List%20Selection%20Should%20Be\" class=\"name\">List Selection Should Be\x3c/a>\x3c/td>\n<td>gender\x3c/td>\n<td>Female\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#List%20Selection%20Should%20Be\" class=\"name\">List Selection Should Be\x3c/a>\x3c/td>\n<td>interests\x3c/td>\n<td>Test Automation\x3c/td>\n<td>Python\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"List Selection Should Be","shortdoc":"Verifies selection list ``locator`` has ``expected`` options selected.","tags":[]},{"args":["locator"],"doc":"<p>Verifies selection list <code>locator\x3c/code> has no options selected.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"List Should Have No Selections","shortdoc":"Verifies selection list ``locator`` has no options selected.","tags":[]},{"args":[],"doc":"<p>Deprecated. Use <a href=\"#Get%20Window%20Handles\" class=\"name\">Get Window Handles\x3c/a> instead.\x3c/p>","matched":true,"name":"List Windows","shortdoc":"Deprecated. Use `Get Window Handles` instead.","tags":[]},{"args":["url"],"doc":"<p>Verifies that current URL is exactly <code>url\x3c/code>.\x3c/p>","matched":true,"name":"Location Should Be","shortdoc":"Verifies that current URL is exactly ``url``.","tags":[]},{"args":["expected"],"doc":"<p>Verifies that current URL contains <code>expected\x3c/code>.\x3c/p>","matched":true,"name":"Location Should Contain","shortdoc":"Verifies that current URL contains ``expected``.","tags":[]},{"args":["locator","x","message=None","loglevel=INFO"],"doc":"<p>Deprecated, use <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> with <code>limit\x3c/code> argument instead.\x3c/p>","matched":true,"name":"Locator Should Match X Times","shortdoc":"Deprecated, use `Page Should Contain Element` with ``limit`` argument instead.","tags":[]},{"args":[],"doc":"<p>Logs and returns the current URL.\x3c/p>","matched":true,"name":"Log Location","shortdoc":"Logs and returns the current URL.","tags":[]},{"args":["loglevel=INFO"],"doc":"<p>Logs and returns the HTML source of the current page or frame.\x3c/p>\n<p>The <code>loglevel\x3c/code> argument defines the used log level. Valid log levels are <code>WARN\x3c/code>, <code>INFO\x3c/code> (default), <code>DEBUG\x3c/code>, and <code>NONE\x3c/code> (no logging).\x3c/p>","matched":true,"name":"Log Source","shortdoc":"Logs and returns the HTML source of the current page or frame.","tags":[]},{"args":[],"doc":"<p>Logs and returns the title of current page.\x3c/p>","matched":true,"name":"Log Title","shortdoc":"Logs and returns the title of current page.","tags":[]},{"args":[],"doc":"<p>Maximizes current browser window.\x3c/p>","matched":true,"name":"Maximize Browser Window","shortdoc":"Maximizes current browser window.","tags":[]},{"args":["locator"],"doc":"<p>Simulates pressing the left mouse button on the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The element is pressed without releasing the mouse button.\x3c/p>\n<p>See also the more specific keywords <a href=\"#Mouse%20Down%20On%20Image\" class=\"name\">Mouse Down On Image\x3c/a> and <a href=\"#Mouse%20Down%20On%20Link\" class=\"name\">Mouse Down On Link\x3c/a>.\x3c/p>","matched":true,"name":"Mouse Down","shortdoc":"Simulates pressing the left mouse button on the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates a mouse down event on an image identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>","matched":true,"name":"Mouse Down On Image","shortdoc":"Simulates a mouse down event on an image identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates a mouse down event on a link identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>","matched":true,"name":"Mouse Down On Link","shortdoc":"Simulates a mouse down event on a link identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates moving mouse away from the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Out","shortdoc":"Simulates moving mouse away from the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates hovering mouse over the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Over","shortdoc":"Simulates hovering mouse over the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates releasing the left mouse button on the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Up","shortdoc":"Simulates releasing the left mouse button on the element ``locator``.","tags":[]},{"args":["url","browser=firefox","alias=None","remote_url=False","desired_capabilities=None","ff_profile_dir=None"],"doc":"<p>Opens a new browser instance to the given <code>url\x3c/code>.\x3c/p>\n<p>The <code>browser\x3c/code> argument specifies which browser to use, and the supported browser are listed in the table below. The browser names are case-insensitive and some browsers have multiple supported names.\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Browser\x3c/th>\n<th>Name(s)\x3c/th>\n\x3c/tr>\n<tr>\n<td>Firefox\x3c/td>\n<td>firefox, ff\x3c/td>\n\x3c/tr>\n<tr>\n<td>Google Chrome\x3c/td>\n<td>googlechrome, chrome, gc\x3c/td>\n\x3c/tr>\n<tr>\n<td>Internet Explorer\x3c/td>\n<td>internetexplorer, ie\x3c/td>\n\x3c/tr>\n<tr>\n<td>Edge\x3c/td>\n<td>edge\x3c/td>\n\x3c/tr>\n<tr>\n<td>Safari\x3c/td>\n<td>safari\x3c/td>\n\x3c/tr>\n<tr>\n<td>Opera\x3c/td>\n<td>opera\x3c/td>\n\x3c/tr>\n<tr>\n<td>Android\x3c/td>\n<td>android\x3c/td>\n\x3c/tr>\n<tr>\n<td>Iphone\x3c/td>\n<td>iphone\x3c/td>\n\x3c/tr>\n<tr>\n<td>PhantomJS\x3c/td>\n<td>phantomjs\x3c/td>\n\x3c/tr>\n<tr>\n<td>HTMLUnit\x3c/td>\n<td>htmlunit\x3c/td>\n\x3c/tr>\n<tr>\n<td>HTMLUnit with Javascript\x3c/td>\n<td>htmlunitwithjs\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>To be able to actually use one of these browsers, you need to have a matching Selenium browser driver available. See the <a href=\"https://github.com/robotframework/Selenium2Library#browser-drivers\">project documentation\x3c/a> for more details.\x3c/p>\n<p>Optional <code>alias\x3c/code> is an alias given for this browser instance and it can be used for switching between browsers. An alternative approach for switching is using an index returned by this keyword. These indices start from 1, are incremented when new browsers are opened, and reset back to 1 when <a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a> is called. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for more information and examples.\x3c/p>\n<p>Optional <code>remote_url\x3c/code> is the URL for a remote Selenium server. If you specify a value for a remote, you can also specify <code>desired_capabilities\x3c/code> to configure, for example, a proxy server for Internet Explorer or a browser and operating system when using <a href=\"http://saucelabs.com\">Sauce Labs\x3c/a>. Desired capabilities can be given either as a Python dictionary or as a string in format <code>key1:value1,key2:value2\x3c/code>. <a href=\"https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities\">Selenium documentation\x3c/a> lists possible capabilities that can be enabled.\x3c/p>\n<p>Optional <code>ff_profile_dir\x3c/code> is the path to the Firefox profile directory if you wish to overwrite the default profile Selenium uses. Notice that prior to Selenium2Library 3.0, the library contained its own profile that was used by default.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>alias=Firefox\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Edge\x3c/td>\n<td>remote_url=http://127.0.0.1:4444/wd/hub\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If the provided configuration options are not enough, it is possible to use <a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a> to customize browser initialization even more.\x3c/p>","matched":true,"name":"Open Browser","shortdoc":"Opens a new browser instance to the given ``url``.","tags":[]},{"args":["locator"],"doc":"<p>Opens context menu on element identified by <code>locator\x3c/code>.\x3c/p>","matched":true,"name":"Open Context Menu","shortdoc":"Opens context menu on element identified by ``locator``.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page contains <code>text\x3c/code>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <code>loglevel\x3c/code> argument. Valid log levels are <code>DEBUG\x3c/code>, <code>INFO\x3c/code> (default), <code>WARN\x3c/code>, and <code>NONE\x3c/code>. If the log level is <code>NONE\x3c/code> or below the current active log level the source will not be logged.\x3c/p>","matched":true,"name":"Page Should Contain","shortdoc":"Verifies that current page contains ``text``.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies button <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Contain Button","shortdoc":"Verifies button ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain Checkbox","shortdoc":"Verifies checkbox ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO","limit=None"],"doc":"<p>Verifies that element <code>locator\x3c/code> is found on the current page.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>limit\x3c/code> argument can used to define how many elements the page should contain. When <code>limit\x3c/code> is <code>None\x3c/code> (default) page can contain one or more elements. When limit is a number, page must contain same number of elements.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>\n<p>Examples assumes that locator matches to two elements.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=1\x3c/td>\n<td># Keyword fails.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=2\x3c/td>\n<td># Keyword passes.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=none\x3c/td>\n<td># None is considered one or more.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>\x3c/td>\n<td># Same as above.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>limit\x3c/code> argument is new in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Page Should Contain Element","shortdoc":"Verifies that element ``locator`` is found on the current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies image identified by <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Contain Image","shortdoc":"Verifies image identified by ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies link identified by <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Contain Link","shortdoc":"Verifies link identified by ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies selection list <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain List","shortdoc":"Verifies selection list ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies radio button <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Contain Radio Button","shortdoc":"Verifies radio button ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies text field <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain Textfield","shortdoc":"Verifies text field ``locator`` is found from current page.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies the current page does not contain <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Page Should Not Contain","shortdoc":"Verifies the current page does not contain ``text``.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies button <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Not Contain Button","shortdoc":"Verifies button ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain Checkbox","shortdoc":"Verifies checkbox ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies that element <code>locator\x3c/code> is found on the current page.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Element","shortdoc":"Verifies that element ``locator`` is found on the current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies image identified by <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Image","shortdoc":"Verifies image identified by ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies link identified by <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Link","shortdoc":"Verifies link identified by ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies selection list <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain List","shortdoc":"Verifies selection list ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies radio button <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Not Contain Radio Button","shortdoc":"Verifies radio button ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=INFO"],"doc":"<p>Verifies text field <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain Textfield","shortdoc":"Verifies text field ``locator`` is not found from current page.","tags":[]},{"args":["locator","key"],"doc":"<p>Simulates user pressing key on element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>key\x3c/code> is either a single character, a string, or a numerical ASCII code of the key lead by '\\\\'.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Press%20Key\" class=\"name\">Press Key\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>q\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Key\" class=\"name\">Press Key\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>abcde\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Key\" class=\"name\">Press Key\x3c/a>\x3c/td>\n<td>login_button\x3c/td>\n<td>\\\\13\x3c/td>\n<td># ASCII code for enter key\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Press Key","shortdoc":"Simulates user pressing key on element identified by ``locator``.","tags":[]},{"args":["group_name","value"],"doc":"<p>Verifies radio button group <code>group_name\x3c/code> is set to <code>value\x3c/code>.\x3c/p>\n<p><code>group_name\x3c/code> is the <code>name\x3c/code> of the radio button group.\x3c/p>","matched":true,"name":"Radio Button Should Be Set To","shortdoc":"Verifies radio button group ``group_name`` is set to ``value``.","tags":[]},{"args":["group_name"],"doc":"<p>Verifies radio button group <code>group_name\x3c/code> has no selection.\x3c/p>\n<p><code>group_name\x3c/code> is the <code>name\x3c/code> of the radio button group.\x3c/p>","matched":true,"name":"Radio Button Should Not Be Selected","shortdoc":"Verifies radio button group ``group_name`` has no selection.","tags":[]},{"args":["keyword"],"doc":"<p>Sets the keyword to execute when a Selenium2Library keyword fails.\x3c/p>\n<p><code>keyword\x3c/code> is the name of a keyword that will be executed if a Selenium2Library keyword fails. It is possible to use any available keyword, including user keywords or keywords from other libraries, but the keyword must not take any arguments.\x3c/p>\n<p>The initial keyword to use is set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library, and the keyword that is used by default is <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.\x3c/p>\n<p>It is possible to use string <code>NOTHING\x3c/code> or <code>NONE\x3c/code>, case-insensitively, as well as Python <code>None\x3c/code> to disable this feature altogether.\x3c/p>\n<p>This keyword returns the name of the previously registered failure keyword or Python <code>None\x3c/code> if this functionality was previously disabled. The return value can be always used to restore the original value later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>Log Source\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${previous kw}=\x3c/td>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>NONE\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>${previous kw}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Changes in Selenium2Library 3.0:\x3c/p>\n<ul>\n<li>Possible to use string <code>NONE\x3c/code> or Python <code>None\x3c/code> to disable the functionality.\x3c/li>\n<li>Return Python <code>None\x3c/code> when the functionality was disabled earlier. In previous versions special value <code>No Keyword\x3c/code> was returned and it could not be used to restore the original state.\x3c/li>\n\x3c/ul>","matched":true,"name":"Register Keyword To Run On Failure","shortdoc":"Sets the keyword to execute when a Selenium2Library keyword fails.","tags":[]},{"args":[],"doc":"<p>Simulates user reloading page.\x3c/p>","matched":true,"name":"Reload Page","shortdoc":"Simulates user reloading page.","tags":[]},{"args":["strategy_name"],"doc":"<p>Removes a previously added custom location strategy.\x3c/p>\n<p>See <a href=\"#Custom%20locators\" class=\"name\">Custom locators\x3c/a> for information how to create and use custom strategies.\x3c/p>","matched":true,"name":"Remove Location Strategy","shortdoc":"Removes a previously added custom location strategy.","tags":[]},{"args":["locator"],"doc":"<p>Selects all options from multi-selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select All From List","shortdoc":"Selects all options from multi-selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Selects checkbox identified by <code>locator\x3c/code>.\x3c/p>\n<p>Does nothing if checkbox is already selected.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select Checkbox","shortdoc":"Selects checkbox identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Sets frame identified by <code>locator\x3c/code> as the current frame.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Works both with frames and iframes. Use <a href=\"#Unselect%20Frame\" class=\"name\">Unselect Frame\x3c/a> to cancel the frame selection and return to the main frame.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a>\x3c/td>\n<td>top-frame\x3c/td>\n<td># Select frame with id or name 'top-frame'\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td># Click link 'example' in the selected frame\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Unselect%20Frame\" class=\"name\">Unselect Frame\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># Back to main frame.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a>\x3c/td>\n<td>//iframe[@name='xxx']\x3c/td>\n<td># Select frame using xpath\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Frame","shortdoc":"Sets frame identified by ``locator`` as the current frame.","tags":[]},{"args":["locator","*options"],"doc":"<p>Deprecated. Use <span class=\"name\">Select From List By Label/Value/Index\x3c/span> instead.\x3c/p>\n<p>This keyword selects options based on labels or values, which makes it very complicated and slow. It has been deprecated in Selenium2Library 3.0, and dedicated keywords <a href=\"#Select%20From%20List%20By%20Label\" class=\"name\">Select From List By Label\x3c/a>, <a href=\"#Select%20From%20List%20By%20Value\" class=\"name\">Select From List By Value\x3c/a> and <a href=\"#Select%20From%20List%20By%20Index\" class=\"name\">Select From List By Index\x3c/a> should be used instead.\x3c/p>","matched":true,"name":"Select From List","shortdoc":"Deprecated. Use `Select From List By Label/Value/Index` instead.","tags":[]},{"args":["locator","*indexes"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>indexes\x3c/code>.\x3c/p>\n<p>Indexes of list options start from 0.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Index","shortdoc":"Selects options from selection list ``locator`` by ``indexes``.","tags":[]},{"args":["locator","*labels"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>labels\x3c/code>.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Label","shortdoc":"Selects options from selection list ``locator`` by ``labels``.","tags":[]},{"args":["locator","*values"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>values\x3c/code>.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Value","shortdoc":"Selects options from selection list ``locator`` by ``values``.","tags":[]},{"args":["group_name","value"],"doc":"<p>Sets radio button group <code>group_name\x3c/code> to <code>value\x3c/code>.\x3c/p>\n<p>The radio button to be selected is located by two arguments:\x3c/p>\n<ul>\n<li><code>group_name\x3c/code> is the name of the radio button group.\x3c/li>\n<li><code>value\x3c/code> is the <code>id\x3c/code> or <code>value\x3c/code> attribute of the actual radio button.\x3c/li>\n\x3c/ul>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Radio%20Button\" class=\"name\">Select Radio Button\x3c/a>\x3c/td>\n<td>size\x3c/td>\n<td>XL\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Radio%20Button\" class=\"name\">Select Radio Button\x3c/a>\x3c/td>\n<td>contact\x3c/td>\n<td>email\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Radio Button","shortdoc":"Sets radio button group ``group_name`` to ``value``.","tags":[]},{"args":["locator=MAIN"],"doc":"<p>Selects browser window matching <code>locator\x3c/code>.\x3c/p>\n<p>If the window is found, all subsequent commands use the selected window, until this keyword is used again. If the window is not found, this keyword fails. The previous window handle is returned, and can be used to return back to it later.\x3c/p>\n<p>Notice that in this context <i>window\x3c/i> means a pop-up window opened when doing something on an existing window. It is not possible to select windows opened with <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>, <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> must be used instead. Notice also that alerts should be handled with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> or other alert related keywords.\x3c/p>\n<p>The <code>locator\x3c/code> can be specified using different strategies somewhat similarly as when <a href=\"#Locating%20elements\" class=\"name\">locating elements\x3c/a> on pages.\x3c/p>\n<ul>\n<li>By default the <code>locator\x3c/code> is matched against window handle, name, title, and URL. Matching is done in that order and the the first matching window is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>The <code>locator\x3c/code> can specify an explicit strategy by using format <code>strategy:value\x3c/code> (recommended) or <code>strategy=value\x3c/code>. Supported strategies are <code>name\x3c/code>, <code>title\x3c/code> and <code>url\x3c/code>, which match windows using name, title, and URL, respectively. Additionally, <code>default\x3c/code> can be used to explicitly use the default strategy explained above.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>NEW\x3c/code> (case-insensitive), the latest opened window is selected. It is an error if this is the same as the current window.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>MAIN\x3c/code> (default, case-insensitive), the main window is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>CURRENT\x3c/code> (case-insensitive), nothing is done. This effectively just returns the current window handle.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is not a string, it is expected to be a list of window handles <i>to exclude\x3c/i>. Such a list of excluded windows can be get from <a href=\"#Get%20Window%20Handles\" class=\"name\">Get Window Handles\x3c/a> prior to doing an action that opens a new window.\x3c/li>\n\x3c/ul>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>popup1\x3c/td>\n<td>\x3c/td>\n<td># Open new window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td>\x3c/td>\n<td># Select window using default strategy\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 1\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Button\" class=\"name\">Click Button\x3c/a>\x3c/td>\n<td>popup2\x3c/td>\n<td>\x3c/td>\n<td># Open another window\x3c/td>\n\x3c/tr>\n<tr>\n<td>${handle} =\x3c/td>\n<td><a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>\x3c/td>\n<td>NEW\x3c/td>\n<td># Select latest opened window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 2\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>\x3c/td>\n<td>${handle}\x3c/td>\n<td>\x3c/td>\n<td># Select window using handle\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 1\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>\x3c/td>\n<td>MAIN\x3c/td>\n<td>\x3c/td>\n<td># Select the main window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Main\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${excludes} =\x3c/td>\n<td><a href=\"#Get%20Window%20Handles\" class=\"name\">Get Window Handles\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># Get list of current windows\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>popup3\x3c/td>\n<td>\x3c/td>\n<td># Open one more window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>\x3c/td>\n<td>${excludes}\x3c/td>\n<td>\x3c/td>\n<td># Select window using excludes\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 3\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><b>NOTE:\x3c/b>\x3c/p>\n<ul>\n<li>The <code>strategy:value\x3c/code> syntax is only supported by Selenium2Library 3.0 and newer.\x3c/li>\n<li>Earlier versions supported aliases <code>None\x3c/code>, <code>null\x3c/code> and the empty string for selecting the main window, and alias <code>self\x3c/code> for selecting the current window. These aliases were deprecated in Selenium2Library 3.0.\x3c/li>\n<li>Prior to Selenium2Library 3.0 matching windows by name, title and URL was case-insensitive.\x3c/li>\n\x3c/ul>","matched":true,"name":"Select Window","shortdoc":"Selects browser window matching ``locator``.","tags":[]},{"args":["value"],"doc":"<p>Sets the implicit wait value used by Selenium.\x3c/p>\n<p>Same as <a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a> but only affects the current browser.\x3c/p>","matched":true,"name":"Set Browser Implicit Wait","shortdoc":"Sets the implicit wait value used by Selenium.","tags":[]},{"args":["locator"],"doc":"<p>Sets focus to element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Prior to Selenium2Library 3.0 this keyword was named <a href=\"#Focus\" class=\"name\">Focus\x3c/a>.\x3c/p>","matched":true,"name":"Set Focus To Element","shortdoc":"Sets focus to element identified by ``locator``.","tags":[]},{"args":["path","persist=DEPRECATED"],"doc":"<p>Sets the directory for captured screenshots.\x3c/p>\n<p><code>path\x3c/code> argument specifies the absolute path to a directory where the screenshots should be written to. If the directory does not exist, it will be created. The directory can also be set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library. If it is not configured anywhere, screenshots are saved to the same directory where Robot Framework's log file is written.\x3c/p>\n<p><code>persist\x3c/code> argument is deprecated and has no effect.\x3c/p>\n<p>The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>Deprecating <code>persist\x3c/code> and returning the previous value are new in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Set Screenshot Directory","shortdoc":"Sets the directory for captured screenshots.","tags":[]},{"args":["value"],"doc":"<p>Sets the implicit wait value used by Selenium.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>This keyword sets the implicit wait for all opened browsers. Use <a href=\"#Set%20Browser%20Implicit%20Wait\" class=\"name\">Set Browser Implicit Wait\x3c/a> to set it only to the current browser.\x3c/p>\n<p>See the <a href=\"#Implicit%20wait\" class=\"name\">Implicit wait\x3c/a> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig wait} =\x3c/td>\n<td><a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a>\x3c/td>\n<td>10 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Perform AJAX call that is slow\x3c/span>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a>\x3c/td>\n<td>${orig wait}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Implicit Wait","shortdoc":"Sets the implicit wait value used by Selenium.","tags":[]},{"args":["value"],"doc":"<p>Sets the delay that is waited after each Selenium command.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>See the <a href=\"#Selenium%20speed\" class=\"name\">Selenium Speed\x3c/a> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Selenium%20Speed\" class=\"name\">Set Selenium Speed\x3c/a>\x3c/td>\n<td>0.5 seconds\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Speed","shortdoc":"Sets the delay that is waited after each Selenium command.","tags":[]},{"args":["value"],"doc":"<p>Sets the timeout that is used by various keywords.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>See the <a href=\"#Timeout\" class=\"name\">Timeout\x3c/a> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig timeout} =\x3c/td>\n<td><a href=\"#Set%20Selenium%20Timeout\" class=\"name\">Set Selenium Timeout\x3c/a>\x3c/td>\n<td>15 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Open page that loads slowly\x3c/span>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Selenium%20Timeout\" class=\"name\">Set Selenium Timeout\x3c/a>\x3c/td>\n<td>${orig timeout}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Timeout","shortdoc":"Sets the timeout that is used by various keywords.","tags":[]},{"args":["x","y"],"doc":"<p>Sets window position using <code>x\x3c/code> and <code>y\x3c/code> coordinates.\x3c/p>\n<p>The position is relative to the top left corner of the screen, but some browsers exclude possible task bar set by the operating system from the calculation. The actual position may thus be different with different browsers.\x3c/p>\n<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href=\"#Get%20Window%20Position\" class=\"name\">Get Window Position\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Window%20Position\" class=\"name\">Set Window Position\x3c/a>\x3c/td>\n<td>100\x3c/td>\n<td>200\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Window Position","shortdoc":"Sets window position using ``x`` and ``y`` coordinates.","tags":[]},{"args":["width","height"],"doc":"<p>Sets current windows size to given <code>width\x3c/code> and <code>height\x3c/code>.\x3c/p>\n<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>.\x3c/p>\n<p>Browsers have a limit how small they can be set. Trying to set them smaller will cause the actual size to be bigger than the requested size.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>\x3c/td>\n<td>800\x3c/td>\n<td>600\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Window Size","shortdoc":"Sets current windows size to given ``width`` and ``height``.","tags":[]},{"args":["locator","event"],"doc":"<p>Deprecated. Use <a href=\"#Simulate%20Event\" class=\"name\">Simulate Event\x3c/a> instead.\x3c/p>","matched":true,"name":"Simulate","shortdoc":"Deprecated. Use `Simulate Event` instead.","tags":[]},{"args":["locator","event"],"doc":"<p>Simulates <code>event\x3c/code> on element identified by <code>locator\x3c/code>.\x3c/p>\n<p>This keyword is useful if element has <code>OnEvent\x3c/code> handler that needs to be explicitly invoked.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Prior to Selenium2Library 3.0 this keyword was named <a href=\"#Simulate\" class=\"name\">Simulate\x3c/a>.\x3c/p>","matched":true,"name":"Simulate Event","shortdoc":"Simulates ``event`` on element identified by ``locator``.","tags":[]},{"args":["locator=None"],"doc":"<p>Submits a form identified by <code>locator\x3c/code>.\x3c/p>\n<p>If <code>locator\x3c/code> is not given, first form on the page is submitted.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Submit Form","shortdoc":"Submits a form identified by ``locator``.","tags":[]},{"args":["index_or_alias"],"doc":"<p>Switches between active browsers using <code>index_or_alias\x3c/code>.\x3c/p>\n<p>Indices are returned by the <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keyword and aliases can be given to it explicitly. Indices start from 1.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n<td>ff\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Location%20Should%20Be\" class=\"name\">Location Should Be\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://yahoo.com\">http://yahoo.com\x3c/a>\x3c/td>\n<td>ie\x3c/td>\n<td>alias=second\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Location%20Should%20Be\" class=\"name\">Location Should Be\x3c/a>\x3c/td>\n<td><a href=\"http://yahoo.com\">http://yahoo.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>1\x3c/td>\n<td># index\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a>\x3c/td>\n<td>I'm feeling lucky\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>second\x3c/td>\n<td># alias\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a>\x3c/td>\n<td>More Yahoo!\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Above example expects that there was no other open browsers when opening the first one because it used index <code>1\x3c/code> when switching to it later. If you are not sure about that, you can store the index into a variable as below.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n\x3c/tr>\n<tr>\n<td># Do something ...\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>${index}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Browser","shortdoc":"Switches between active browsers using ``index_or_alias``.","tags":[]},{"args":["locator","row","column","expected","loglevel=INFO"],"doc":"<p>Verifies table cell contains text <code>expected\x3c/code>.\x3c/p>\n<p>See <a href=\"#Get%20Table%20Cell\" class=\"name\">Get Table Cell\x3c/a> that this keyword uses internally for explanation about accepted arguments.\x3c/p>","matched":true,"name":"Table Cell Should Contain","shortdoc":"Verifies table cell contains text ``expected``.","tags":[]},{"args":["locator","column","expected","loglevel=INFO"],"doc":"<p>Verifies table column contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its column found using <code>column\x3c/code>. See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Column indexes start from 1. It is possible to refer to columns from the end by using negative indexes so that -1 is the last column, -2 is the second last, and so on.\x3c/p>\n<p>If a table contains cells that span multiple columns, those merged cells count as a single column.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Column Should Contain","shortdoc":"Verifies table column contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=INFO"],"doc":"<p>Verifies table footer contains text <code>expected\x3c/code>.\x3c/p>\n<p>Any <code>&lt;td&gt;\x3c/code> element inside <code>&lt;tfoot&gt;\x3c/code> element is considered to be part of the footer.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Footer Should Contain","shortdoc":"Verifies table footer contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=INFO"],"doc":"<p>Verifies table header contains text <code>expected\x3c/code>.\x3c/p>\n<p>Any <code>&lt;th&gt;\x3c/code> element anywhere in the table is considered to be part of the header.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Header Should Contain","shortdoc":"Verifies table header contains text ``expected``.","tags":[]},{"args":["locator","row","expected","loglevel=INFO"],"doc":"<p>Verifies that table row contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its column found using <code>column\x3c/code>. See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>Row indexes start from 1. It is possible to refer to rows from the end by using negative indexes so that -1 is the last row, -2 is the second last, and so on.\x3c/p>\n<p>If a table contains cells that span multiple rows, a match only occurs for the uppermost row of those merged cells.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Row Should Contain","shortdoc":"Verifies that table row contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=INFO"],"doc":"<p>Verifies table contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Should Contain","shortdoc":"Verifies table contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text area <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textarea Should Contain","shortdoc":"Verifies text area ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text area <code>locator\x3c/code> has exactly text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textarea Value Should Be","shortdoc":"Verifies text area ``locator`` has exactly text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text field <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textfield Should Contain","shortdoc":"Verifies text field ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text field <code>locator\x3c/code> has exactly text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textfield Value Should Be","shortdoc":"Verifies text field ``locator`` has exactly text ``expected``.","tags":[]},{"args":["title"],"doc":"<p>Verifies that current page title equals <code>title\x3c/code>.\x3c/p>","matched":true,"name":"Title Should Be","shortdoc":"Verifies that current page title equals ``title``.","tags":[]},{"args":["locator"],"doc":"<p>Unselects all options from multi-selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p>New in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Unselect All From List","shortdoc":"Unselects all options from multi-selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Removes selection of checkbox identified by <code>locator\x3c/code>.\x3c/p>\n<p>Does nothing if the checkbox is not selected.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect Checkbox","shortdoc":"Removes selection of checkbox identified by ``locator``.","tags":[]},{"args":[],"doc":"<p>Sets the main frame as the current frame.\x3c/p>\n<p>In practice cancels the previous <a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a> call.\x3c/p>","matched":true,"name":"Unselect Frame","shortdoc":"Sets the main frame as the current frame.","tags":[]},{"args":["locator","*items"],"doc":"<p>Deprecated. Use <span class=\"name\">Unselect From List By Label/Value/Index\x3c/span> instead.\x3c/p>\n<p>This keyword unselects options based on labels or values, which makes it very complicated and slow. It has been deprecated in Selenium2Library 3.0, and dedicated keywords <a href=\"#Unselect%20From%20List%20By%20Label\" class=\"name\">Unselect From List By Label\x3c/a>, <a href=\"#Unselect%20From%20List%20By%20Value\" class=\"name\">Unselect From List By Value\x3c/a> and <a href=\"#Unselect%20From%20List%20By%20Index\" class=\"name\">Unselect From List By Index\x3c/a> should be used instead.\x3c/p>","matched":true,"name":"Unselect From List","shortdoc":"Deprecated. Use `Unselect From List By Label/Value/Index` instead.","tags":[]},{"args":["locator","*indexes"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>indexes\x3c/code>.\x3c/p>\n<p>Indexes of list options start from 0. This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Index","shortdoc":"Unselects options from selection list ``locator`` by ``indexes``.","tags":[]},{"args":["locator","*labels"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>labels\x3c/code>.\x3c/p>\n<p>This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Label","shortdoc":"Unselects options from selection list ``locator`` by ``labels``.","tags":[]},{"args":["locator","*values"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>values\x3c/code>.\x3c/p>\n<p>This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Value","shortdoc":"Unselects options from selection list ``locator`` by ``values``.","tags":[]},{"args":["condition","timeout=None","error=None"],"doc":"<p>Waits until <code>condition\x3c/code> is true or <code>timeout\x3c/code> expires.\x3c/p>\n<p>The condition can be arbitrary JavaScript expression but it must return a value to be evaluated. See <a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a> for information about accessing content on pages.\x3c/p>\n<p>Fails if the timeout expires before the condition becomes true. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>return document.title == \"New Title\"\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>return jQuery.active == 0\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>style = document.querySelector('h1').style; return style.background == \"red\" &amp;&amp; style.color == \"white\"\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Wait For Condition","shortdoc":"Waits until ``condition`` is true or ``timeout`` expires.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Contains","shortdoc":"Waits until element ``locator`` contains ``text``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element <code>locator\x3c/code> does not contain <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Does Not Contain","shortdoc":"Waits until element ``locator`` does not contain ``text``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element <code>locator\x3c/code> is enabled.\x3c/p>\n<p>Element is considered enabled if it is not disabled nor read-only.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is enabled. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>Considering read-only elements to be disabled is a new feature in Selenium2Library 3.0.\x3c/p>","matched":true,"name":"Wait Until Element Is Enabled","shortdoc":"Waits until element ``locator`` is enabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element <code>locator\x3c/code> is not visible.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is not visible. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Is Not Visible","shortdoc":"Waits until element ``locator`` is not visible.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element <code>locator\x3c/code> is visible.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is visible. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Is Visible","shortdoc":"Waits until element ``locator`` is visible.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <code>text\x3c/code> appears on current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Contains","shortdoc":"Waits until ``text`` appears on current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element <code>locator\x3c/code> appears on current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Contains Element","shortdoc":"Waits until element ``locator`` appears on current page.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <code>text\x3c/code> disappears from current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain","shortdoc":"Waits until ``text`` disappears from current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element <code>locator\x3c/code> disappears from current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <a href=\"#Locating%20elements\" class=\"name\">Locating elements\x3c/a> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain Element","shortdoc":"Waits until element ``locator`` disappears from current page.","tags":[]},{"args":["xpath","x","message=None","loglevel=INFO"],"doc":"<p>Deprecated, use <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> with <code>limit\x3c/code> argument instead.\x3c/p>","matched":true,"name":"Xpath Should Match X Times","shortdoc":"Deprecated, use `Page Should Contain Element` with ``limit`` argument instead.","tags":[]}],"name":"Selenium2Library","named_args":true,"scope":"global","version":"3.0.0"};
</script>
<title>Selenium2Library</title>
</head>
<body>

<div id="javascript-disabled" style="display: none;">
  <h1>Opening library documentation failed</h1>
  <ul>
    <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
    <li>Make sure you are using a <b>modern enough browser</b>. Firefox 3.5, IE 8, or equivalent is required, newer browsers are recommended.</li>
    <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
  </ul>
</div>

<script type="text/javascript">
    // Not using jQuery here for speed and to support ancient browsers.
    document.getElementById('javascript-disabled').style.display = 'none';
</script>

<script type="text/javascript">
    $(document).ready(function() {
        parseTemplates();
        document.title = libdoc.name;
        renderTemplate('base', libdoc, $('body'));
        if (libdoc.inits.length) {
            renderTemplate('importing', libdoc);
        }
        renderTemplate('shortcuts', libdoc);
        if (libdoc.contains_tags) {
            renderTemplate('tags', libdoc);
        }
        renderTemplate('keywords', libdoc);
        renderTemplate('footer', libdoc);
        scrollToHash();
        $(document).bind('keydown', handleKeydown);
    });

    function parseTemplates() {
        $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
            $.template(elem.id, elem.text);
        });
    }

    function renderTemplate(name, arguments, container) {
        if (!container) {
            container = $('#' + name + '-container');
            container.empty();
        }
        if (!arguments.search) {
            arguments.search = false;
        }
        $.tmpl(name + '-template', arguments).appendTo(container);
    }

    function handleKeydown(event) {
        event = event || window.event;
        var keyCode = event.keyCode || event.which;
        if (keyCode === 27)  // esc
            setTimeout(closeSearch, 0);
        if (keyCode === 83 && $('#search').is(':hidden'))  // s
            setTimeout(openSearch, 0);
    }

    function scrollToHash() {
        if (window.location.hash) {
            var hash = window.location.hash.substring(1).replace('+', ' ');
            window.location.hash = hash;
        }
    }

    function tagSearch(tag) {
        var include = {tags: true, tagsExact: true};
        markMatches(tag, include);
        highlightMatches(tag, include);
        $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
    }

    function doSearch() {
        var string = $('#search-string').val();
        var include = getIncludesAndDisableIfOnlyOneLeft();
        if (string) {
            markMatches(string, include);
            highlightMatches(string, include);
            setMatchVisibility();
        } else {
            resetKeywords();
        }
    }

    function getIncludesAndDisableIfOnlyOneLeft() {
        var name = $('#include-name');
        var args = $('#include-args');
        var doc = $('#include-doc');
        var tags = $('#include-tags');
        var include = {name: name.prop('checked'),
                       args: args.prop('checked'),
                       doc: doc.prop('checked'),
                       tags: !!tags.prop('checked')};
        if ((!include.name) && (!include.args) && (!include.doc)) {
            tags.prop('disabled', true);
        } else if ((!include.name) && (!include.args) && (!include.tags)) {
            doc.prop('disabled', true);
        } else if ((!include.name) && (!include.doc) && (!include.tags)) {
            args.prop('disabled', true);
        } else if ((!include.args) && (!include.doc) && (!include.tags)) {
            name.prop('disabled', true);
        } else {
            name.prop('disabled', false);
            args.prop('disabled', false);
            doc.prop('disabled', false);
            tags.prop('disabled', false);
        }
        return include;
    }

    function markMatches(pattern, include) {
        pattern = util.regexpEscape(pattern);
        if (include.tagsExact) {
            pattern = '^' + pattern + '$';
        }
        var regexp = new RegExp(pattern, 'i');
        var test = regexp.test.bind(regexp);
        var result = {contains_tags: libdoc.contains_tags};
        var matchCount = 0;
        result.keywords = util.map(libdoc.keywords, function (kw) {
            kw = $.extend({}, kw);
            kw.matched = (include.name && test(kw.name) ||
                          include.args && test(kw.args) ||
                          include.doc && test($(kw.doc).text()) ||
                          include.tags && util.any(util.map(kw.tags, test)));
            if (kw.matched)
                matchCount++;
            return kw
        });
        renderTemplate('shortcuts', result);
        renderTemplate('keywords', result);
        if (libdoc.contains_tags) {
            renderTemplate('tags', libdoc);
        }
        var ending = matchCount != 1 ? 's.' : '.';
        $('#match-count').show().text(matchCount + ' matched keyword' + ending);
        $('#altogether-count').hide();
        if (matchCount == 0)
            $('#keywords-container').find('table').empty();
    }

    function highlightMatches(string, include) {
        var shortcuts = $('#shortcuts-container').find('.match');
        var keywords = $('#keywords-container').find('.match');
        if (include.name) {
            shortcuts.highlight(string);
            keywords.find('.kw').highlight(string);
        }
        if (include.args) {
            keywords.find('.args').highlight(string);
        }
        if (include.doc) {
            keywords.find('.doc').highlight(string);
        }
        if (include.tags) {
            var matches = keywords.find('.tags').find('a').add(
                    $('#tags-container').find('a'));
            if (include.tagsExact) {
                matches = matches.filter(function (index, tag) {
                    return $(tag).text().toUpperCase() == string.toUpperCase();
                });
            }
            matches.highlight(string);
        }
    }

    function openSearch() {
        $('#search').show();
        $('#open-search').hide();
        $('#search-string').focus().select();
        $(document).scrollTop($("#Shortcuts").offset().top);
    }

    function closeSearch() {
        $('#search').hide();
        $('#open-search').show();
    }

    function resetSearch() {
        $('#search-string').val('');
        $('#include-name').prop('checked', true);
        $('#include-args').prop('checked', true);
        $('#include-doc').prop('checked', true);
        $('#hide-unmatched').prop('checked', false);
        resetKeywords();
    }

    function resetKeywords() {
        renderTemplate('shortcuts', libdoc);
        renderTemplate('keywords', libdoc);
        if (libdoc.contains_tags) {
            renderTemplate('tags', libdoc);
        }
        $('#match-count').hide();
        $('#altogether-count').show();
    }

    function setMatchVisibility() {
        var kws = $('#keywords-container').find('.kw-row');
        var hide = $('#hide-unmatched').prop('checked');
        kws.toggleClass('hide-unmatched', hide);
    }

    // http://stackoverflow.com/a/18484799
    var delay = (function () {
        var timer = 0;
        return function(callback, ms) {
            clearTimeout(timer);
            timer = setTimeout(callback, ms);
        };
    })();

</script>

<script type="text/x-jquery-tmpl" id="base-template">
    <h1>${name}</h1>
    <table class="metadata">
        {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
        {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
        <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
    </table>
    <div id="introduction-container">
        <h2 id="Introduction">Introduction</h2>
        <div class="doc">{{html doc}}</div>
    </div>
    <div id="importing-container"></div>
    <div id="shortcuts-container"></div>
    <div id="tags-container"></div>
    <div id="keywords-container"></div>
    <div id="footer-container"></div>
    <form id="search" action="javascript:void(0)">
        <fieldset>
            <legend id="search-title">Search keywords</legend>
            <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
            <fieldset>
                <legend>Search from</legend>
                <input type="checkbox" id="include-name" onclick="doSearch()" checked>
                <label for="include-name">Name</label>
                <input type="checkbox" id="include-args" onclick="doSearch()" checked>
                <label for="include-args">Arguments</label>
                <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
                <label for="include-doc">Documentation</label>
                {{if libdoc.contains_tags}}
                <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
                <label for="include-tags">Tags</label>
                {{/if}}
            </fieldset>
            <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
            <label for="hide-unmatched">Hide unmatched keywords</label>
            <div id="search-buttons">
                <input type="button" value="Reset" onclick="resetSearch()"
                       title="Reset search">
                <input type="button" value="Close" onclick="closeSearch()"
                       title="Close search (shortcut: <Esc>)">
            </div>
        </fieldset>
    </form>
    <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
</script>

<script type="text/x-jquery-tmpl" id="importing-template">
    <h2 id="Importing">Importing</h2>
    <table border="1" class="keywords">
        <tr>
            <th class="args">Arguments</th>
            <th class="doc">Documentation</th>
        </tr>
        {{each inits}}
        <tr class="kw-row">
            <td class="args">
            {{each args}}
              <span>${$value}</span>{{if $index < args.length-1}}, {{/if}}
            {{/each}}
            </td>
            <td class="doc">{{html $value.doc}}</td>
        </tr>
        {{/each}}
    </table>
</script>

<script type="text/x-jquery-tmpl" id="shortcuts-template">
    <h2 id="Shortcuts">Shortcuts</h2>
    <div class='shortcuts'>
        {{each keywords}}
        <a href="#${encodeURIComponent($value.name)}"
           class="{{if $value.matched === false}}no-{{/if}}match"
           title="${$value.shortdoc}">${$value.name}</a>
        {{if $index < keywords.length-1}} &middot; {{/if}}
        {{/each}}
    </div>
</script>

<script type="text/x-jquery-tmpl" id="tags-template">
    <h2 id="Tags">Tags</h2>
    <div class='shortcuts'>
        {{each all_tags}}
        <a href="javascript:tagSearch('${$value}')"
           title="Show tests with this tag">${$value}</a> &middot;
        {{/each}}
        <a href="javascript:resetKeywords()" class="normal-first-letter"
           title="Show all tests">[Reset]</a>
    </div>
</script>

<script type="text/x-jquery-tmpl" id="keywords-template">
    <h2 id="Keywords">Keywords</h2>
    <table border="1" class="keywords">
        <tr>
            <th class="kw">Keyword</th>
            <th class="args">Arguments</th>
            {{if libdoc.contains_tags}}
            <th class="tags">Tags</th>
            {{/if}}
            <th class="doc">Documentation</th>
        </tr>
        {{each keywords}}
            {{tmpl($value) 'keyword-template'}}
        {{/each}}
    </table>
</script>

<script type="text/x-jquery-tmpl" id="keyword-template">
    <tr class="kw-row {{if matched === false}}no-{{/if}}match">
        <td class="kw">
            <a name="${name}" href="#${encodeURIComponent(name)}"
               title="Link to this keyword">${name}</a>
        </td>
        <td class="args">
            {{each args}}
            <span>${$value}</span>{{if $index < args.length-1}}, {{/if}}
            {{/each}}
        </td>
        {{if libdoc.contains_tags}}
        <td class="tags">
            {{each tags}}
            <a href="javascript:tagSearch('${$value}')"
               title="Show tests with this tag">${$value}</a>{{if $index < tags.length-1}}, {{/if}}
            {{/each}}
        </td>
        {{/if}}
        <td class="doc">{{html doc}}</td>
    </tr>
</script>


<script type="text/x-jquery-tmpl" id="footer-template">
    <p class="footer">
        <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
        <span id="match-count"></span>
        <br>
        Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
    </p>
</script>



<h1>Selenium2Library</h1>     <table class="metadata">         <tbody><tr><th>Library version:</th><td>3.0.0</td></tr>         <tr><th>Library scope:</th><td>global</td></tr>         <tr><th>Named arguments:</th><td>supported</td></tr>     </tbody></table>     <div id="introduction-container">         <h2 id="Introduction">Introduction</h2>         <div class="doc"><hr>
<p><b>NOTE:</b> Selenium2Library has been renamed to SeleniumLibrary 
since version 3.0. Nowadays Selenium2Library is just a thin wrapper to 
SeleniumLibrary that eases with transitioning to the new project. See <a href="https://github.com/robotframework/SeleniumLibrary">SeleniumLibrary</a> and <a href="https://github.com/robotframework/Selenium2Library">Selenium2Library</a> project pages for more information.</p>
<hr>
<p>Selenium2Library is a web testing library for Robot Framework.</p>
<p>This document explains how to use keywords provided by 
Selenium2Library. For information about installation, support, and more,
 please visit the <a href="https://github.com/robotframework/Selenium2Library">project pages</a>. For more information about Robot Framework, see <a href="http://robotframework.org/">http://robotframework.org</a>.</p>
<p>Selenium2Library uses the Selenium WebDriver modules internally to control a web browser. See <a href="http://seleniumhq.org/">http://seleniumhq.org</a> for more information about Selenium in general.</p>
<h3 id="Table of contents">Table of contents</h3>
<ul>
<li><a href="#Locating%20elements" class="name">Locating elements</a></li>
<li><a href="#Timeouts%2C%20waits%20and%20delays" class="name">Timeouts, waits and delays</a></li>
<li><a href="#Run-on-failure%20functionality" class="name">Run-on-failure functionality</a></li>
<li><a href="#Boolean%20arguments" class="name">Boolean arguments</a></li>
<li><a href="#Importing" class="name">Importing</a></li>
<li><a href="#Shortcuts" class="name">Shortcuts</a></li>
<li><a href="#Keywords" class="name">Keywords</a></li>
</ul>
<h2 id="Locating elements">Locating elements</h2>
<p>All keywords in Selenium2Library that need to interact with an element on a web page take an argument typically named <code>locator</code>
 that specifies how to find the element. Most often the locator is given
 as a string using the locator syntax described below, but <a href="#Using%20WebElements" class="name">using WebElements</a> is possible too.</p>
<h3 id="Locator syntax">Locator syntax</h3>
<p>Selenium2Library supports finding elements based on different 
strategies such as the element id, XPath expressions, or CSS selectors. 
The strategy can either be explicitly specified with a prefix or the 
strategy can be implicit.</p>
<h4 id="Default locator strategy">Default locator strategy</h4>
<p>By default locators are considered to use the keyword specific 
default locator strategy. All keywords support finding elements based on
 <code>id</code> and <code>name</code> attributes, but some keywords support additional attributes or other values that make sense in their context. For example, <a href="#Click%20Link" class="name">Click Link</a> supports the <code>href</code> attribute and the link text and addition to the normal <code>id</code> and <code>name</code>.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>example</td>
<td># Match based on <code>id</code> or <code>name</code>.</td>
</tr>
<tr>
<td><a href="#Click%20Link" class="name">Click Link</a></td>
<td>example</td>
<td># Match also based on link text and <code>href</code>.</td>
</tr>
<tr>
<td><a href="#Click%20Button" class="name">Click Button</a></td>
<td>example</td>
<td># Match based on <code>id</code>, <code>name</code> or <code>value</code>.</td>
</tr>
</tbody></table>
<p>If a locator accidentally starts with a prefix recognized as <a href="#Explicit%20locator%20strategy" class="name">explicit locator strategy</a> or <a href="#Implicit%20XPath%20strategy" class="name">implicit XPath strategy</a>, it is possible to use the explicit <code>default</code> prefix to enable the default strategy.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>name:foo</td>
<td># Find element with name <code>foo</code>.</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>default:name:foo</td>
<td># Use default strategy with value <code>name:foo</code>.</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>//foo</td>
<td># Find element using XPath <code>//foo</code>.</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>default: //foo</td>
<td># Use default strategy with value <code>//foo</code>.</td>
</tr>
</tbody></table>
<h4 id="Explicit locator strategy">Explicit locator strategy</h4>
<p>The explicit locator strategy is specified with a prefix using either syntax <code>strategy:value</code> or <code>strategy=value</code>. The former syntax is preferred, because the latter is identical to Robot Framework's <a href="http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#named-argument-syntax">named argument syntax</a> and that can cause problems. Spaces around the separator are ignored, so <code>id:foo</code>, <code>id: foo</code> and <code>id : foo</code> are all equivalent.</p>
<p>Locator strategies that are supported by default are listed in the table below. In addition to them, it is possible to register <a href="#Custom%20locators" class="name">custom locators</a>.</p>
<table border="1">
<tbody><tr>
<th>Strategy</th>
<th>Match based on</th>
<th>Example</th>
</tr>
<tr>
<td>id</td>
<td>Element <code>id</code>.</td>
<td><code>id:example</code></td>
</tr>
<tr>
<td>name</td>
<td><code>name</code> attribute.</td>
<td><code>name:example</code></td>
</tr>
<tr>
<td>identifier</td>
<td>Either <code>id</code> or <code>name</code>.</td>
<td><code>identifier:example</code></td>
</tr>
<tr>
<td>class</td>
<td>Element <code>class</code>.</td>
<td><code>class:example</code></td>
</tr>
<tr>
<td>tag</td>
<td>Tag name.</td>
<td><code>tag:div</code></td>
</tr>
<tr>
<td>xpath</td>
<td>XPath expression.</td>
<td><code>xpath://div[@id="example"]</code></td>
</tr>
<tr>
<td>css</td>
<td>CSS selector.</td>
<td><code>css:div#example</code></td>
</tr>
<tr>
<td>dom</td>
<td>DOM expression.</td>
<td><code>dom:document.images[5]</code></td>
</tr>
<tr>
<td>link</td>
<td>Exact text a link has.</td>
<td><code>link:The example</code></td>
</tr>
<tr>
<td>partial link</td>
<td>Partial link text.</td>
<td><code>partial link:he ex</code></td>
</tr>
<tr>
<td>sizzle</td>
<td>Sizzle selector provided by jQuery.</td>
<td><code>sizzle:div.example</code></td>
</tr>
<tr>
<td>jquery</td>
<td>Same as the above.</td>
<td><code>jquery:div.example</code></td>
</tr>
<tr>
<td>default</td>
<td>Keyword specific default behavior.</td>
<td><code>default:example</code></td>
</tr>
</tbody></table>
<p>See the <a href="#Default%20locator%20strategy" class="name">Default locator strategy</a> section below for more information about how the default strategy works. Using the explicit <code>default</code> prefix is only necessary if the locator value itself accidentally matches some of the explicit strategies.</p>
<p>Different locator strategies have different pros and cons. Using ids, either explicitly like <code>id:foo</code> or by using the <a href="#Default%20locator%20strategy" class="name">default locator strategy</a> simply like <code>foo</code>,
 is recommended when possible, because the syntax is simple and locating
 elements by an id is fast for browsers. If an element does not have an 
id or the id is not stable, other solutions need to be used. If an 
element has a unique tag name or class, using <code>tag</code>, <code>class</code> or <code>css</code> strategy like <code>tag:h1</code>, <code>class:example</code> or <code>css:h1.example</code>
 is often an easy solution. In more complex cases using XPath 
expressions is typically the best approach. They are very powerful but a
 downside is that they can also get complex.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>id:foo</td>
<td># Element with id 'foo'.</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>css:div#foo h1</td>
<td># h1 element under div with id 'foo'.</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>xpath: //div[@id="foo"]//h1</td>
<td># Same as the above using XPath, not CSS.</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>xpath: //*[contains(text(), "example")]</td>
<td># Element containing text 'example'.</td>
</tr>
</tbody></table>
<p><b>NOTE:</b></p>
<ul>
<li>The <code>strategy:value</code> syntax is only supported by Selenium2Library 3.0 and newer.</li>
<li>Using the <code>sizzle</code> strategy or its alias <code>jquery</code> requires that the system under test contains the jQuery library.</li>
<li>Prior to Selenium2Library 3.0, table related keywords only supported <code>xpath</code>, <code>css</code> and <code>sizzle/jquery</code> strategies.</li>
</ul>
<h4 id="Implicit XPath strategy">Implicit XPath strategy</h4>
<p>If the locator starts with <code>//</code> or <code>(//</code>, the locator is considered to be an XPath expression. In other words, using <code>//div</code> is equivalent to using explicit <code>xpath://div</code>.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>//div[@id="foo"]//h1</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>(//div)[2]</td>
</tr>
</tbody></table>
<p>The support for the <code>(//</code> prefix is new in Selenium2Library 3.0.</p>
<h3 id="Using WebElements">Using WebElements</h3>
<p>In addition to specifying a locator as a string, it is possible to 
use Selenium's WebElement objects. This requires first getting a 
WebElement, for example, by using the <a href="#Get%20WebElement" class="name">Get WebElement</a> keyword.</p>
<table border="1">
<tbody><tr>
<td>${elem} =</td>
<td><a href="#Get%20WebElement" class="name">Get WebElement</a></td>
<td>id:example</td>
</tr>
<tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>${elem}</td>
<td></td>
</tr>
</tbody></table>
<h3 id="Custom locators">Custom locators</h3>
<p>If more complex lookups are required than what is provided through 
the default locators, custom lookup strategies can be created. Using 
custom locators is a two part process. First, create a keyword that 
returns a WebElement that should be acted on:</p>
<table border="1">
<tbody><tr>
<td>Custom Locator Strategy</td>
<td>[Arguments]</td>
<td>${browser}</td>
<td>${strategy}</td>
<td>${tag}</td>
<td>${constraints}</td>
</tr>
<tr>
<td></td>
<td>${element}=</td>
<td>Execute Javascript</td>
<td>return window.document.getElementById('${criteria}');</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>[Return]</td>
<td>${element}</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<p>This keyword is a reimplementation of the basic functionality of the <code>id</code> locator where <code>${browser}</code> is a reference to a WebDriver instance and <code>${strategy}</code> is name of the locator strategy. To use this locator it must first be registered by using the <a href="#Add%20Location%20Strategy" class="name">Add Location Strategy</a> keyword:</p>
<table border="1">
<tbody><tr>
<td><a href="#Add%20Location%20Strategy" class="name">Add Location Strategy</a></td>
<td>custom</td>
<td>Custom Locator Strategy</td>
</tr>
</tbody></table>
<p>The first argument of <a href="#Add%20Location%20Strategy" class="name">Add Location Strategy</a>
 specifies the name of the strategy and it must be unique. After 
registering the strategy, the usage is the same as with other locators:</p>
<table border="1">
<tbody><tr>
<td><a href="#Click%20Element" class="name">Click Element</a></td>
<td>custom:example</td>
</tr>
</tbody></table>
<p>See the <a href="#Add%20Location%20Strategy" class="name">Add Location Strategy</a> keyword for more details.</p>
<h2 id="Timeouts, waits and delays">Timeouts, waits and delays</h2>
<p>This section discusses different ways how to wait for elements to 
appear on web pages and to slow down execution speed otherwise. It also 
explains the <a href="#Time%20format" class="name">time format</a> that can be used when setting various timeouts, waits and delays.</p>
<h3 id="Timeout">Timeout</h3>
<p>Selenium2Library contains various keywords that have an optional <code>timeout</code>
 argument that specifies how long these keywords should wait for certain
 events or actions. These keywords include, for example, <code>Wait ...</code> keywords and keywords related to alerts.</p>
<p>The default timeout these keywords use can be set globally either by using the <a href="#Set%20Selenium%20Timeout" class="name">Set Selenium Timeout</a> keyword or with the <code>timeout</code> argument when <a href="#Importing" class="name">importing</a> the library. See <a href="#Time%20format" class="name">time format</a> below for supported timeout syntax.</p>
<h3 id="Implicit wait">Implicit wait</h3>
<p>Implicit wait specifies the maximum time how long Selenium waits when searching for elements. It can be set by using the <a href="#Set%20Selenium%20Implicit%20Wait" class="name">Set Selenium Implicit Wait</a> keyword or with the <code>implicit_wait</code> argument when <a href="#Importing" class="name">importing</a> the library. See <a href="http://seleniumhq.org/docs/04_webdriver_advanced.html">Selenium documentation</a> for more information about this functionality.</p>
<p>See <a href="#Time%20format" class="name">time format</a> below for supported syntax.</p>
<h3 id="Selenium speed">Selenium speed</h3>
<p>Selenium execution speed can be slowed down globally by using <a href="#Set%20Selenium%20Speed" class="name">Set Selenium speed</a>
 keyword. This functionality is designed to be used for demonstrating or
 debugging purposes. Using it to make sure that elements appear on a 
page is not a good idea, and the above explained timeouts and waits 
should be used instead.</p>
<p>See <a href="#Time%20format" class="name">time format</a> below for supported syntax.</p>
<h3 id="Time format">Time format</h3>
<p>All timeouts and waits can be given as numbers considered seconds (e.g. <code>0.5</code> or <code>42</code>) or in Robot Framework's time syntax (e.g. <code>1.5 seconds</code> or <code>1 min 30 s</code>). For more information about the time syntax see the <a href="http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#time-format">Robot Framework User Guide</a>.</p>
<h2 id="Run-on-failure functionality">Run-on-failure functionality</h2>
<p>Selenium2Library has a handy feature that it can automatically 
execute a keyword if any of its own keywords fails. By default it uses 
the <a href="#Capture%20Page%20Screenshot" class="name">Capture Page Screenshot</a> keyword, but this can be changed either by using the <a href="#Register%20Keyword%20To%20Run%20On%20Failure" class="name">Register Keyword To Run On Failure</a> keyword or with the <code>run_on_failure</code> argument when <a href="#Importing" class="name">importing</a> the library. It is possible to use any keyword from any imported library or resource file.</p>
<p>The run-on-failure functionality can be disabled by using a special value <code>NOTHING</code> or anything considered false (see <a href="#Boolean%20arguments" class="name">Boolean arguments</a>) such as <code>NONE</code>.</p>
<h2 id="Boolean arguments">Boolean arguments</h2>
<p>Some keywords accept arguments that are handled as Boolean values 
true or false. If such an argument is given as a string, it is 
considered false if it is either empty or case-insensitively equal to <code>false</code>, <code>no</code> or <code>none</code>. Other strings are considered true regardless their value, and other argument types are tested using same <a href="https://docs.python.org/2/library/stdtypes.html#truth-value-testing">rules as in Python</a>.</p>
<p>True examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=True</td>
<td># Strings are generally true.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=yes</td>
<td># Same as the above.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=${TRUE}</td>
<td># Python True is true.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=${42}</td>
<td># Numbers other than 0 are true.</td>
</tr>
</tbody></table>
<p>False examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=False</td>
<td># String false is false.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=no</td>
<td># Also string no is false.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=NONE</td>
<td># String NONE is false.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=${EMPTY}</td>
<td># Empty string is false.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=${FALSE}</td>
<td># Python False is false.</td>
</tr>
<tr>
<td><a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a></td>
<td>${RESULTS}</td>
<td>persist=${NONE}</td>
<td># Python None is false.</td>
</tr>
</tbody></table>
<p>Note that prior to Selenium2Library 3.0, all non-empty strings, including <code>false</code>, <code>no</code> and <code>none</code>, were considered true.</p></div>     </div>     <div id="importing-container"><h2 id="Importing">Importing</h2>     <table class="keywords" border="1">         <tbody><tr>             <th class="args">Arguments</th>             <th class="doc">Documentation</th>         </tr>                  <tr class="kw-row">             <td class="args">                            <span>timeout=5.0</span>,                             <span>implicit_wait=0.0</span>,                             <span>run_on_failure=Capture Page Screenshot</span>,                             <span>screenshot_root_directory=None</span>                          </td>             <td class="doc"><p>Selenium2Library can be imported with several optional arguments.</p>
<ul>
<li><code>timeout</code>: Default value for <span class="name">timeouts</span> used with <code>Wait ...</code> keywords.</li>
<li><code>implicit_wait</code>: Default value for <a href="#Implicit%20wait" class="name">implicit wait</a> used when locating elements.</li>
<li><code>run_on_failure</code>: Default action for the <a href="#Run-on-failure%20functionality" class="name">run-on-failure functionality</a>.</li>
<li><code>screenshot_root_directory</code>: Location where possible screenshots are created. If not given, the directory where the log file is written is used.</li>
</ul></td>         </tr>              </tbody></table></div>     <div id="shortcuts-container"><h2 id="Shortcuts">Shortcuts</h2>     <div class="shortcuts">                  <a href="#Add%20Cookie" class="match" title="Adds a cookie to your current session.">Add Cookie</a>          ·                   <a href="#Add%20Location%20Strategy" class="match" title="Adds a custom location strategy.">Add Location Strategy</a>          ·                   <a href="#Alert%20Should%20Be%20Present" class="match" title="Verifies that an alert is present and, by default, accepts it.">Alert Should Be Present</a>          ·                   <a href="#Alert%20Should%20Not%20Be%20Present" class="match" title="Verifies that no alert is present.">Alert Should Not Be Present</a>          ·                   <a href="#Assign%20Id%20To%20Element" class="match" title="Assigns temporary ``id`` to element specified by ``locator``.">Assign Id To Element</a>          ·                   <a href="#Capture%20Page%20Screenshot" class="match" title="Takes screenshot of the current page and embeds it into log file.">Capture Page Screenshot</a>          ·                   <a href="#Checkbox%20Should%20Be%20Selected" class="match" title="Verifies checkbox ``locator`` is selected/checked.">Checkbox Should Be Selected</a>          ·                   <a href="#Checkbox%20Should%20Not%20Be%20Selected" class="match" title="Verifies checkbox ``locator`` is not selected/checked.">Checkbox Should Not Be Selected</a>          ·                   <a href="#Choose%20Cancel%20On%20Next%20Confirmation" class="match" title="Deprecated. Use `Handle Alert` directly instead.">Choose Cancel On Next Confirmation</a>          ·                   <a href="#Choose%20File" class="match" title="Inputs the ``file_path`` into file input field ``locator``.">Choose File</a>          ·                   <a href="#Choose%20Ok%20On%20Next%20Confirmation" class="match" title="Deprecated. Use `Handle Alert` directly instead.">Choose Ok On Next Confirmation</a>          ·                   <a href="#Clear%20Element%20Text" class="match" title="Clears the value of text entry element identified by ``locator``.">Clear Element Text</a>          ·                   <a href="#Click%20Button" class="match" title="Clicks button identified by ``locator``.">Click Button</a>          ·                   <a href="#Click%20Element" class="match" title="Click element identified by ``locator``.">Click Element</a>          ·                   <a href="#Click%20Element%20At%20Coordinates" class="match" title="Click element ``locator`` at ``xoffset/yoffset``.">Click Element At Coordinates</a>          ·                   <a href="#Click%20Image" class="match" title="Clicks an image identified by ``locator``.">Click Image</a>          ·                   <a href="#Click%20Link" class="match" title="Clicks a link identified by ``locator``.">Click Link</a>          ·                   <a href="#Close%20All%20Browsers" class="match" title="Closes all open browsers and resets the browser cache.">Close All Browsers</a>          ·                   <a href="#Close%20Browser" class="match" title="Closes the current browser.">Close Browser</a>          ·                   <a href="#Close%20Window" class="match" title="Closes currently opened pop-up window.">Close Window</a>          ·                   <a href="#Confirm%20Action" class="match" title="Deprecated. Use `Handle Alert` instead.">Confirm Action</a>          ·                   <a href="#Create%20Webdriver" class="match" title="Creates an instance of Selenium WebDriver.">Create Webdriver</a>          ·                   <a href="#Current%20Frame%20Contains" class="match" title="Deprecated. Use `Current Frame Should Contain` instead.">Current Frame Contains</a>          ·                   <a href="#Current%20Frame%20Should%20Contain" class="match" title="Verifies that current frame contains ``text``.">Current Frame Should Contain</a>          ·                   <a href="#Current%20Frame%20Should%20Not%20Contain" class="match" title="Verifies that current frame does not contains ``text``.">Current Frame Should Not Contain</a>          ·                   <a href="#Delete%20All%20Cookies" class="match" title="Deletes all cookies.">Delete All Cookies</a>          ·                   <a href="#Delete%20Cookie" class="match" title="Deletes cookie matching ``name``.">Delete Cookie</a>          ·                   <a href="#Dismiss%20Alert" class="match" title="Deprecated. Use `Handle Alert` instead.">Dismiss Alert</a>          ·                   <a href="#Double%20Click%20Element" class="match" title="Double click element identified by ``locator``.">Double Click Element</a>          ·                   <a href="#Drag%20And%20Drop" class="match" title="Drags element identified by ``locator`` into ``target`` element.">Drag And Drop</a>          ·                   <a href="#Drag%20And%20Drop%20By%20Offset" class="match" title="Drags element identified with ``locator`` by ``xoffset/yoffset``.">Drag And Drop By Offset</a>          ·                   <a href="#Element%20Should%20Be%20Disabled" class="match" title="Verifies that element identified with ``locator`` is disabled.">Element Should Be Disabled</a>          ·                   <a href="#Element%20Should%20Be%20Enabled" class="match" title="Verifies that element identified with ``locator`` is enabled.">Element Should Be Enabled</a>          ·                   <a href="#Element%20Should%20Be%20Focused" class="match" title="Verifies that element identified with ``locator`` is focused.">Element Should Be Focused</a>          ·                   <a href="#Element%20Should%20Be%20Visible" class="match" title="Verifies that the element identified by ``locator`` is visible.">Element Should Be Visible</a>          ·                   <a href="#Element%20Should%20Contain" class="match" title="Verifies that element ``locator`` contains text ``expected``.">Element Should Contain</a>          ·                   <a href="#Element%20Should%20Not%20Be%20Visible" class="match" title="Verifies that the element identified by ``locator`` is NOT visible.">Element Should Not Be Visible</a>          ·                   <a href="#Element%20Should%20Not%20Contain" class="match" title="Verifies that element ``locator`` does not contains text ``expected``.">Element Should Not Contain</a>          ·                   <a href="#Element%20Text%20Should%20Be" class="match" title="Verifies that element ``locator`` contains exact text ``expected``.">Element Text Should Be</a>          ·                   <a href="#Execute%20Async%20Javascript" class="match" title="Executes asynchronous JavaScript code.">Execute Async Javascript</a>          ·                   <a href="#Execute%20Javascript" class="match" title="Executes the given JavaScript code.">Execute Javascript</a>          ·                   <a href="#Focus" class="match" title="Deprecated. Use `Set Focus To Element` instead.">Focus</a>          ·                   <a href="#Frame%20Should%20Contain" class="match" title="Verifies that frame identified by ``locator`` contains ``text``.">Frame Should Contain</a>          ·                   <a href="#Get%20Alert%20Message" class="match" title="Deprecated. Use `Handle Alert` instead.">Get Alert Message</a>          ·                   <a href="#Get%20All%20Links" class="match" title="Returns a list containing ids of all links found in current page.">Get All Links</a>          ·                   <a href="#Get%20Cookie" class="match" title="Returns information of cookie with ``name`` as an object.">Get Cookie</a>          ·                   <a href="#Get%20Cookie%20Value" class="match" title="Deprecated. Use `Get Cookie` instead.">Get Cookie Value</a>          ·                   <a href="#Get%20Cookies" class="match" title="Returns all cookies of the current page.">Get Cookies</a>          ·                   <a href="#Get%20Element%20Attribute" class="match" title="Returns value of ``attribute`` from element ``locator``.">Get Element Attribute</a>          ·                   <a href="#Get%20Element%20Count" class="match" title="Returns number of elements matching ``locator``.">Get Element Count</a>          ·                   <a href="#Get%20Element%20Size" class="match" title="Returns width and height of element identified by ``locator``.">Get Element Size</a>          ·                   <a href="#Get%20Horizontal%20Position" class="match" title="Returns horizontal position of element identified by ``locator``.">Get Horizontal Position</a>          ·                   <a href="#Get%20List%20Items" class="match" title="Returns all labels or values of selection list ``locator``.">Get List Items</a>          ·                   <a href="#Get%20Location" class="match" title="Returns the current browser URL.">Get Location</a>          ·                   <a href="#Get%20Locations" class="match" title="Returns and logs URLs of all known browser windows.">Get Locations</a>          ·                   <a href="#Get%20Matching%20Xpath%20Count" class="match" title="Deprecated. Use `Get Element Count` instead.">Get Matching Xpath Count</a>          ·                   <a href="#Get%20Selected%20List%20Label" class="match" title="Returns label of selected option from selection list ``locator``.">Get Selected List Label</a>          ·                   <a href="#Get%20Selected%20List%20Labels" class="match" title="Returns labels of selected options from selection list ``locator``.">Get Selected List Labels</a>          ·                   <a href="#Get%20Selected%20List%20Value" class="match" title="Returns value of selected option from selection list ``locator``.">Get Selected List Value</a>          ·                   <a href="#Get%20Selected%20List%20Values" class="match" title="Returns values of selected options from selection list ``locator``.">Get Selected List Values</a>          ·                   <a href="#Get%20Selenium%20Implicit%20Wait" class="match" title="Gets the implicit wait value used by Selenium.">Get Selenium Implicit Wait</a>          ·                   <a href="#Get%20Selenium%20Speed" class="match" title="Gets the delay that is waited after each Selenium command.">Get Selenium Speed</a>          ·                   <a href="#Get%20Selenium%20Timeout" class="match" title="Gets the timeout that is used by various keywords.">Get Selenium Timeout</a>          ·                   <a href="#Get%20Source" class="match" title="Returns the entire HTML source of the current page or frame.">Get Source</a>          ·                   <a href="#Get%20Table%20Cell" class="match" title="Returns contents of table cell.">Get Table Cell</a>          ·                   <a href="#Get%20Text" class="match" title="Returns the text value of element identified by ``locator``.">Get Text</a>          ·                   <a href="#Get%20Title" class="match" title="Returns the title of current page.">Get Title</a>          ·                   <a href="#Get%20Value" class="match" title="Returns the value attribute of element identified by ``locator``.">Get Value</a>          ·                   <a href="#Get%20Vertical%20Position" class="match" title="Returns vertical position of element identified by ``locator``.">Get Vertical Position</a>          ·                   <a href="#Get%20WebElement" class="match" title="Returns the first WebElement matching the given ``locator``.">Get WebElement</a>          ·                   <a href="#Get%20WebElements" class="match" title="Returns list of WebElement objects matching the ``locator``.">Get WebElements</a>          ·                   <a href="#Get%20Window%20Handles" class="match" title="Return all current window handles as a list.">Get Window Handles</a>          ·                   <a href="#Get%20Window%20Identifiers" class="match" title="Returns and logs id attributes of all known browser windows.">Get Window Identifiers</a>          ·                   <a href="#Get%20Window%20Names" class="match" title="Returns and logs names of all known browser windows.">Get Window Names</a>          ·                   <a href="#Get%20Window%20Position" class="match" title="Returns current window position.">Get Window Position</a>          ·                   <a href="#Get%20Window%20Size" class="match" title="Returns current window width and height as integers.">Get Window Size</a>          ·                   <a href="#Get%20Window%20Titles" class="match" title="Returns and logs titles of all known browser windows.">Get Window Titles</a>          ·                   <a href="#Go%20Back" class="match" title="Simulates the user clicking the back button on their browser.">Go Back</a>          ·                   <a href="#Go%20To" class="match" title="Navigates the active browser instance to the provided ``url``.">Go To</a>          ·                   <a href="#Handle%20Alert" class="match" title="Handles the current alert and returns its message.">Handle Alert</a>          ·                   <a href="#Input%20Password" class="match" title="Types the given password into text field identified by ``locator``.">Input Password</a>          ·                   <a href="#Input%20Text" class="match" title="Types the given ``text`` into text field identified by ``locator``.">Input Text</a>          ·                   <a href="#Input%20Text%20Into%20Alert" class="match" title="Types the given ``text`` into an input field in an alert.">Input Text Into Alert</a>          ·                   <a href="#Input%20Text%20Into%20Prompt" class="match" title="Deprecated. Use `Input Text Into Alert` instead.">Input Text Into Prompt</a>          ·                   <a href="#List%20Selection%20Should%20Be" class="match" title="Verifies selection list ``locator`` has ``expected`` options selected.">List Selection Should Be</a>          ·                   <a href="#List%20Should%20Have%20No%20Selections" class="match" title="Verifies selection list ``locator`` has no options selected.">List Should Have No Selections</a>          ·                   <a href="#List%20Windows" class="match" title="Deprecated. Use `Get Window Handles` instead.">List Windows</a>          ·                   <a href="#Location%20Should%20Be" class="match" title="Verifies that current URL is exactly ``url``.">Location Should Be</a>          ·                   <a href="#Location%20Should%20Contain" class="match" title="Verifies that current URL contains ``expected``.">Location Should Contain</a>          ·                   <a href="#Locator%20Should%20Match%20X%20Times" class="match" title="Deprecated, use `Page Should Contain Element` with ``limit`` argument instead.">Locator Should Match X Times</a>          ·                   <a href="#Log%20Location" class="match" title="Logs and returns the current URL.">Log Location</a>          ·                   <a href="#Log%20Source" class="match" title="Logs and returns the HTML source of the current page or frame.">Log Source</a>          ·                   <a href="#Log%20Title" class="match" title="Logs and returns the title of current page.">Log Title</a>          ·                   <a href="#Maximize%20Browser%20Window" class="match" title="Maximizes current browser window.">Maximize Browser Window</a>          ·                   <a href="#Mouse%20Down" class="match" title="Simulates pressing the left mouse button on the element ``locator``.">Mouse Down</a>          ·                   <a href="#Mouse%20Down%20On%20Image" class="match" title="Simulates a mouse down event on an image identified by ``locator``.">Mouse Down On Image</a>          ·                   <a href="#Mouse%20Down%20On%20Link" class="match" title="Simulates a mouse down event on a link identified by ``locator``.">Mouse Down On Link</a>          ·                   <a href="#Mouse%20Out" class="match" title="Simulates moving mouse away from the element ``locator``.">Mouse Out</a>          ·                   <a href="#Mouse%20Over" class="match" title="Simulates hovering mouse over the element ``locator``.">Mouse Over</a>          ·                   <a href="#Mouse%20Up" class="match" title="Simulates releasing the left mouse button on the element ``locator``.">Mouse Up</a>          ·                   <a href="#Open%20Browser" class="match" title="Opens a new browser instance to the given ``url``.">Open Browser</a>          ·                   <a href="#Open%20Context%20Menu" class="match" title="Opens context menu on element identified by ``locator``.">Open Context Menu</a>          ·                   <a href="#Page%20Should%20Contain" class="match" title="Verifies that current page contains ``text``.">Page Should Contain</a>          ·                   <a href="#Page%20Should%20Contain%20Button" class="match" title="Verifies button ``locator`` is found from current page.">Page Should Contain Button</a>          ·                   <a href="#Page%20Should%20Contain%20Checkbox" class="match" title="Verifies checkbox ``locator`` is found from current page.">Page Should Contain Checkbox</a>          ·                   <a href="#Page%20Should%20Contain%20Element" class="match" title="Verifies that element ``locator`` is found on the current page.">Page Should Contain Element</a>          ·                   <a href="#Page%20Should%20Contain%20Image" class="match" title="Verifies image identified by ``locator`` is found from current page.">Page Should Contain Image</a>          ·                   <a href="#Page%20Should%20Contain%20Link" class="match" title="Verifies link identified by ``locator`` is found from current page.">Page Should Contain Link</a>          ·                   <a href="#Page%20Should%20Contain%20List" class="match" title="Verifies selection list ``locator`` is found from current page.">Page Should Contain List</a>          ·                   <a href="#Page%20Should%20Contain%20Radio%20Button" class="match" title="Verifies radio button ``locator`` is found from current page.">Page Should Contain Radio Button</a>          ·                   <a href="#Page%20Should%20Contain%20Textfield" class="match" title="Verifies text field ``locator`` is found from current page.">Page Should Contain Textfield</a>          ·                   <a href="#Page%20Should%20Not%20Contain" class="match" title="Verifies the current page does not contain ``text``.">Page Should Not Contain</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20Button" class="match" title="Verifies button ``locator`` is not found from current page.">Page Should Not Contain Button</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20Checkbox" class="match" title="Verifies checkbox ``locator`` is not found from current page.">Page Should Not Contain Checkbox</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20Element" class="match" title="Verifies that element ``locator`` is found on the current page.">Page Should Not Contain Element</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20Image" class="match" title="Verifies image identified by ``locator`` is found from current page.">Page Should Not Contain Image</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20Link" class="match" title="Verifies link identified by ``locator`` is not found from current page.">Page Should Not Contain Link</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20List" class="match" title="Verifies selection list ``locator`` is not found from current page.">Page Should Not Contain List</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20Radio%20Button" class="match" title="Verifies radio button ``locator`` is not found from current page.">Page Should Not Contain Radio Button</a>          ·                   <a href="#Page%20Should%20Not%20Contain%20Textfield" class="match" title="Verifies text field ``locator`` is not found from current page.">Page Should Not Contain Textfield</a>          ·                   <a href="#Press%20Key" class="match" title="Simulates user pressing key on element identified by ``locator``.">Press Key</a>          ·                   <a href="#Radio%20Button%20Should%20Be%20Set%20To" class="match" title="Verifies radio button group ``group_name`` is set to ``value``.">Radio Button Should Be Set To</a>          ·                   <a href="#Radio%20Button%20Should%20Not%20Be%20Selected" class="match" title="Verifies radio button group ``group_name`` has no selection.">Radio Button Should Not Be Selected</a>          ·                   <a href="#Register%20Keyword%20To%20Run%20On%20Failure" class="match" title="Sets the keyword to execute when a Selenium2Library keyword fails.">Register Keyword To Run On Failure</a>          ·                   <a href="#Reload%20Page" class="match" title="Simulates user reloading page.">Reload Page</a>          ·                   <a href="#Remove%20Location%20Strategy" class="match" title="Removes a previously added custom location strategy.">Remove Location Strategy</a>          ·                   <a href="#Select%20All%20From%20List" class="match" title="Selects all options from multi-selection list ``locator``.">Select All From List</a>          ·                   <a href="#Select%20Checkbox" class="match" title="Selects checkbox identified by ``locator``.">Select Checkbox</a>          ·                   <a href="#Select%20Frame" class="match" title="Sets frame identified by ``locator`` as the current frame.">Select Frame</a>          ·                   <a href="#Select%20From%20List" class="match" title="Deprecated. Use `Select From List By Label/Value/Index` instead.">Select From List</a>          ·                   <a href="#Select%20From%20List%20By%20Index" class="match" title="Selects options from selection list ``locator`` by ``indexes``.">Select From List By Index</a>          ·                   <a href="#Select%20From%20List%20By%20Label" class="match" title="Selects options from selection list ``locator`` by ``labels``.">Select From List By Label</a>          ·                   <a href="#Select%20From%20List%20By%20Value" class="match" title="Selects options from selection list ``locator`` by ``values``.">Select From List By Value</a>          ·                   <a href="#Select%20Radio%20Button" class="match" title="Sets radio button group ``group_name`` to ``value``.">Select Radio Button</a>          ·                   <a href="#Select%20Window" class="match" title="Selects browser window matching ``locator``.">Select Window</a>          ·                   <a href="#Set%20Browser%20Implicit%20Wait" class="match" title="Sets the implicit wait value used by Selenium.">Set Browser Implicit Wait</a>          ·                   <a href="#Set%20Focus%20To%20Element" class="match" title="Sets focus to element identified by ``locator``.">Set Focus To Element</a>          ·                   <a href="#Set%20Screenshot%20Directory" class="match" title="Sets the directory for captured screenshots.">Set Screenshot Directory</a>          ·                   <a href="#Set%20Selenium%20Implicit%20Wait" class="match" title="Sets the implicit wait value used by Selenium.">Set Selenium Implicit Wait</a>          ·                   <a href="#Set%20Selenium%20Speed" class="match" title="Sets the delay that is waited after each Selenium command.">Set Selenium Speed</a>          ·                   <a href="#Set%20Selenium%20Timeout" class="match" title="Sets the timeout that is used by various keywords.">Set Selenium Timeout</a>          ·                   <a href="#Set%20Window%20Position" class="match" title="Sets window position using ``x`` and ``y`` coordinates.">Set Window Position</a>          ·                   <a href="#Set%20Window%20Size" class="match" title="Sets current windows size to given ``width`` and ``height``.">Set Window Size</a>          ·                   <a href="#Simulate" class="match" title="Deprecated. Use `Simulate Event` instead.">Simulate</a>          ·                   <a href="#Simulate%20Event" class="match" title="Simulates ``event`` on element identified by ``locator``.">Simulate Event</a>          ·                   <a href="#Submit%20Form" class="match" title="Submits a form identified by ``locator``.">Submit Form</a>          ·                   <a href="#Switch%20Browser" class="match" title="Switches between active browsers using ``index_or_alias``.">Switch Browser</a>          ·                   <a href="#Table%20Cell%20Should%20Contain" class="match" title="Verifies table cell contains text ``expected``.">Table Cell Should Contain</a>          ·                   <a href="#Table%20Column%20Should%20Contain" class="match" title="Verifies table column contains text ``expected``.">Table Column Should Contain</a>          ·                   <a href="#Table%20Footer%20Should%20Contain" class="match" title="Verifies table footer contains text ``expected``.">Table Footer Should Contain</a>          ·                   <a href="#Table%20Header%20Should%20Contain" class="match" title="Verifies table header contains text ``expected``.">Table Header Should Contain</a>          ·                   <a href="#Table%20Row%20Should%20Contain" class="match" title="Verifies that table row contains text ``expected``.">Table Row Should Contain</a>          ·                   <a href="#Table%20Should%20Contain" class="match" title="Verifies table contains text ``expected``.">Table Should Contain</a>          ·                   <a href="#Textarea%20Should%20Contain" class="match" title="Verifies text area ``locator`` contains text ``expected``.">Textarea Should Contain</a>          ·                   <a href="#Textarea%20Value%20Should%20Be" class="match" title="Verifies text area ``locator`` has exactly text ``expected``.">Textarea Value Should Be</a>          ·                   <a href="#Textfield%20Should%20Contain" class="match" title="Verifies text field ``locator`` contains text ``expected``.">Textfield Should Contain</a>          ·                   <a href="#Textfield%20Value%20Should%20Be" class="match" title="Verifies text field ``locator`` has exactly text ``expected``.">Textfield Value Should Be</a>          ·                   <a href="#Title%20Should%20Be" class="match" title="Verifies that current page title equals ``title``.">Title Should Be</a>          ·                   <a href="#Unselect%20All%20From%20List" class="match" title="Unselects all options from multi-selection list ``locator``.">Unselect All From List</a>          ·                   <a href="#Unselect%20Checkbox" class="match" title="Removes selection of checkbox identified by ``locator``.">Unselect Checkbox</a>          ·                   <a href="#Unselect%20Frame" class="match" title="Sets the main frame as the current frame.">Unselect Frame</a>          ·                   <a href="#Unselect%20From%20List" class="match" title="Deprecated. Use `Unselect From List By Label/Value/Index` instead.">Unselect From List</a>          ·                   <a href="#Unselect%20From%20List%20By%20Index" class="match" title="Unselects options from selection list ``locator`` by ``indexes``.">Unselect From List By Index</a>          ·                   <a href="#Unselect%20From%20List%20By%20Label" class="match" title="Unselects options from selection list ``locator`` by ``labels``.">Unselect From List By Label</a>          ·                   <a href="#Unselect%20From%20List%20By%20Value" class="match" title="Unselects options from selection list ``locator`` by ``values``.">Unselect From List By Value</a>          ·                   <a href="#Wait%20For%20Condition" class="match" title="Waits until ``condition`` is true or ``timeout`` expires.">Wait For Condition</a>          ·                   <a href="#Wait%20Until%20Element%20Contains" class="match" title="Waits until element ``locator`` contains ``text``.">Wait Until Element Contains</a>          ·                   <a href="#Wait%20Until%20Element%20Does%20Not%20Contain" class="match" title="Waits until element ``locator`` does not contain ``text``.">Wait Until Element Does Not Contain</a>          ·                   <a href="#Wait%20Until%20Element%20Is%20Enabled" class="match" title="Waits until element ``locator`` is enabled.">Wait Until Element Is Enabled</a>          ·                   <a href="#Wait%20Until%20Element%20Is%20Not%20Visible" class="match" title="Waits until element ``locator`` is not visible.">Wait Until Element Is Not Visible</a>          ·                   <a href="#Wait%20Until%20Element%20Is%20Visible" class="match" title="Waits until element ``locator`` is visible.">Wait Until Element Is Visible</a>          ·                   <a href="#Wait%20Until%20Page%20Contains" class="match" title="Waits until ``text`` appears on current page.">Wait Until Page Contains</a>          ·                   <a href="#Wait%20Until%20Page%20Contains%20Element" class="match" title="Waits until element ``locator`` appears on current page.">Wait Until Page Contains Element</a>          ·                   <a href="#Wait%20Until%20Page%20Does%20Not%20Contain" class="match" title="Waits until ``text`` disappears from current page.">Wait Until Page Does Not Contain</a>          ·                   <a href="#Wait%20Until%20Page%20Does%20Not%20Contain%20Element" class="match" title="Waits until element ``locator`` disappears from current page.">Wait Until Page Does Not Contain Element</a>          ·                   <a href="#Xpath%20Should%20Match%20X%20Times" class="match" title="Deprecated, use `Page Should Contain Element` with ``limit`` argument instead.">Xpath Should Match X Times</a>                       </div></div>     <div id="tags-container"></div>     <div id="keywords-container"><h2 id="Keywords">Keywords</h2>     <table class="keywords" border="1">         <tbody><tr>             <th class="kw">Keyword</th>             <th class="args">Arguments</th>                          <th class="doc">Documentation</th>         </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Add Cookie" href="#Add%20Cookie" title="Link to this keyword">Add Cookie</a>         </td>         <td class="args">                          <span>name</span>,                           <span>value</span>,                           <span>path=None</span>,                           <span>domain=None</span>,                           <span>secure=None</span>,                           <span>expiry=None</span>                      </td>                  <td class="doc"><p>Adds a cookie to your current session.</p>
<p><code>name</code> and <code>value</code> are required, <code>path</code>, <code>domain</code>, <code>secure</code> and <code>expiry</code> are optional.  Expiry supports the same formats as the <a href="http://robotframework.org/robotframework/latest/libraries/DateTime.html">DateTime</a> library or an epoch time stamp.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Add%20Cookie" class="name">Add Cookie</a></td>
<td>foo</td>
<td>bar</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Add%20Cookie" class="name">Add Cookie</a></td>
<td>foo</td>
<td>bar</td>
<td>domain=example.com</td>
<td></td>
</tr>
<tr>
<td><a href="#Add%20Cookie" class="name">Add Cookie</a></td>
<td>foo</td>
<td>bar</td>
<td>expiry=2027-09-28 16:21:35</td>
<td># Expiry as timestamp.</td>
</tr>
<tr>
<td><a href="#Add%20Cookie" class="name">Add Cookie</a></td>
<td>foo</td>
<td>bar</td>
<td>expiry=1822137695</td>
<td># Expiry as epoch seconds.</td>
</tr>
</tbody></table>
<p>Prior to Selenium2Library 3.0 setting expiry did not work.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Add Location Strategy" href="#Add%20Location%20Strategy" title="Link to this keyword">Add Location Strategy</a>         </td>         <td class="args">                          <span>strategy_name</span>,                           <span>strategy_keyword</span>,                           <span>persist=False</span>                      </td>                  <td class="doc"><p>Adds a custom location strategy.</p>
<p>See <a href="#Custom%20locators" class="name">Custom locators</a> for information how to create and use custom strategies. <a href="#Remove%20Location%20Strategy" class="name">Remove Location Strategy</a> can be used to remove a registered strategy.</p>
<p>Location strategies are automatically removed after leaving the current scope by default. Setting <code>persist</code> to a true value (see <a href="#Boolean%20arguments" class="name">Boolean arguments</a>) will cause the location strategy to stay registered throughout the life of the test.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Alert Should Be Present" href="#Alert%20Should%20Be%20Present" title="Link to this keyword">Alert Should Be Present</a>         </td>         <td class="args">                          <span>text=</span>,                           <span>action=ACCEPT</span>,                           <span>timeout=None</span>                      </td>                  <td class="doc"><p>Verifies that an alert is present and, by default, accepts it.</p>
<p>Fails if no alert is present. If <code>text</code> is a non-empty 
string, then it is used to verify alert's message. The alert is accepted
 by default, but that behavior can be controlled by using the <code>action</code> argument same way as with <a href="#Handle%20Alert" class="name">Handle Alert</a>.</p>
<p><code>timeout</code> specifies how long to wait for the alert to appear. If it is not given, the global default <a href="#Timeout" class="name">timeout</a> is used instead.</p>
<p><code>action</code> and <code>timeout</code> arguments are new in 
Selenium2Library 3.0. In earlier versions the alert was always accepted 
and timeout was hard coded to one second.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Alert Should Not Be Present" href="#Alert%20Should%20Not%20Be%20Present" title="Link to this keyword">Alert Should Not Be Present</a>         </td>         <td class="args">                          <span>action=ACCEPT</span>,                           <span>timeout=0</span>                      </td>                  <td class="doc"><p>Verifies that no alert is present.</p>
<p>If the alert actually exists, the <code>action</code> argument 
determines how it should be handled. By default the alert is accepted, 
but it can be also dismissed or left open the same way as with the <a href="#Handle%20Alert" class="name">Handle Alert</a> keyword.</p>
<p><code>timeout</code> specifies how long to wait for the alert to 
appear. By default the alert is not waited at all, but a custom time can
 be given if alert may be delayed. See the <a href="#Time%20format" class="name">time format</a> section for information about the syntax.</p>
<p>New in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Assign Id To Element" href="#Assign%20Id%20To%20Element" title="Link to this keyword">Assign Id To Element</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>id</span>                      </td>                  <td class="doc"><p>Assigns temporary <code>id</code> to element specified by <code>locator</code>.</p>
<p>This is mainly useful if the locator is complicated and/or slow XPath
 expression and it is needed multiple times. Identifier expires when the
 page is reloaded.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Assign%20Id%20To%20Element" class="name">Assign ID to Element</a></td>
<td>//ul[@class='example' and ./li[contains(., 'Stuff')]]</td>
<td>my id</td>
</tr>
<tr>
<td><a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a></td>
<td>my id</td>
<td></td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Capture Page Screenshot" href="#Capture%20Page%20Screenshot" title="Link to this keyword">Capture Page Screenshot</a>         </td>         <td class="args">                          <span>filename=selenium-screenshot-{index}.png</span>                      </td>                  <td class="doc"><p>Takes screenshot of the current page and embeds it into log file.</p>
<p><code>filename</code> argument specifies the name of the file to 
write the screenshot into. The directory where screenshots are saved can
 be set when <a href="#Importing" class="name">importing</a> the library or by using the <a href="#Set%20Screenshot%20Directory" class="name">Set Screenshot Directory</a>
 keyword. If the directory is not configured, screenshots are saved to 
the same directory where Robot Framework's log file is written.</p>
<p>Starting from Selenium2Library 1.8, if <code>filename</code> contains marker <code>{index}</code>,
 it will be automatically replaced with unique running index preventing 
files to be overwritten. Indices start from 1, and how they are 
represented can be customized using Python's <a href="https://docs.python.org/2/library/string.html#formatstrings">format string syntax</a>.</p>
<p>An absolute path to the created screenshot file is returned.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Capture%20Page%20Screenshot" class="name">Capture Page Screenshot</a></td>
<td></td>
</tr>
<tr>
<td><span class="name">File Should Exist</span></td>
<td>${OUTPUTDIR}/selenium-screenshot-1.png</td>
</tr>
<tr>
<td>${path} =</td>
<td><a href="#Capture%20Page%20Screenshot" class="name">Capture Page Screenshot</a></td>
</tr>
<tr>
<td><span class="name">File Should Exist</span></td>
<td>${OUTPUTDIR}/selenium-screenshot-2.png</td>
</tr>
<tr>
<td><span class="name">File Should Exist</span></td>
<td>${path}</td>
</tr>
<tr>
<td><a href="#Capture%20Page%20Screenshot" class="name">Capture Page Screenshot</a></td>
<td>custom_name.png</td>
</tr>
<tr>
<td><span class="name">File Should Exist</span></td>
<td>${OUTPUTDIR}/custom_name.png</td>
</tr>
<tr>
<td><a href="#Capture%20Page%20Screenshot" class="name">Capture Page Screenshot</a></td>
<td>custom_with_index_{index}.png</td>
</tr>
<tr>
<td><span class="name">File Should Exist</span></td>
<td>${OUTPUTDIR}/custom_with_index_1.png</td>
</tr>
<tr>
<td><a href="#Capture%20Page%20Screenshot" class="name">Capture Page Screenshot</a></td>
<td>formatted_index_{index:03}.png</td>
</tr>
<tr>
<td><span class="name">File Should Exist</span></td>
<td>${OUTPUTDIR}/formatted_index_001.png</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Checkbox Should Be Selected" href="#Checkbox%20Should%20Be%20Selected" title="Link to this keyword">Checkbox Should Be Selected</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Verifies checkbox <code>locator</code> is selected/checked.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Checkbox Should Not Be Selected" href="#Checkbox%20Should%20Not%20Be%20Selected" title="Link to this keyword">Checkbox Should Not Be Selected</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Verifies checkbox <code>locator</code> is not selected/checked.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax..</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Choose Cancel On Next Confirmation" href="#Choose%20Cancel%20On%20Next%20Confirmation" title="Link to this keyword">Choose Cancel On Next Confirmation</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Handle%20Alert" class="name">Handle Alert</a> directly instead.</p>
<p>In versions prior to Selenium2Library 3.0, the alert handling approach needed to be set separately before using the <a href="#Confirm%20Action" class="name">Confirm Action</a> keyword. New <a href="#Handle%20Alert" class="name">Handle Alert</a> keyword accepts the action how to handle the alert as a normal argument and should be used instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Choose File" href="#Choose%20File" title="Link to this keyword">Choose File</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>file_path</span>                      </td>                  <td class="doc"><p>Inputs the <code>file_path</code> into file input field <code>locator</code>.</p>
<p>This keyword is most often used to input files into upload forms. The file specified with <code>file_path</code> must be available on machine where tests are executed.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Choose%20File" class="name">Choose File</a></td>
<td>my_upload_field</td>
<td>${CURDIR}/trades.csv</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Choose Ok On Next Confirmation" href="#Choose%20Ok%20On%20Next%20Confirmation" title="Link to this keyword">Choose Ok On Next Confirmation</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Handle%20Alert" class="name">Handle Alert</a> directly instead.</p>
<p>In versions prior to Selenium2Library 3.0, the alert handling approach needed to be set separately before using the <a href="#Confirm%20Action" class="name">Confirm Action</a> keyword. New <a href="#Handle%20Alert" class="name">Handle Alert</a> keyword accepts the action how to handle the alert as a normal argument and should be used instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Clear Element Text" href="#Clear%20Element%20Text" title="Link to this keyword">Clear Element Text</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Clears the value of text entry element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Click Button" href="#Click%20Button" title="Link to this keyword">Click Button</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Clicks button identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id</code>, <code>name</code> and <code>value</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Click Element" href="#Click%20Element" title="Link to this keyword">Click Element</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Click element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Click Element At Coordinates" href="#Click%20Element%20At%20Coordinates" title="Link to this keyword">Click Element At Coordinates</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>xoffset</span>,                           <span>yoffset</span>                      </td>                  <td class="doc"><p>Click element <code>locator</code> at <code>xoffset/yoffset</code>.</p>
<p>Cursor is moved and the center of the element and x/y coordinates are calculated from that point.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Click Image" href="#Click%20Image" title="Link to this keyword">Click Image</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Clicks an image identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id</code>, <code>name</code>, <code>src</code> and <code>alt</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Click Link" href="#Click%20Link" title="Link to this keyword">Click Link</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Clicks a link identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id</code>, <code>name</code>, <code>href</code> and the link text.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Close All Browsers" href="#Close%20All%20Browsers" title="Link to this keyword">Close All Browsers</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Closes all open browsers and resets the browser cache.</p>
<p>After this keyword new indexes returned from <a href="#Open%20Browser" class="name">Open Browser</a> keyword are reset to 1.</p>
<p>This keyword should be used in test or suite teardown to make sure all browsers are closed.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Close Browser" href="#Close%20Browser" title="Link to this keyword">Close Browser</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Closes the current browser.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Close Window" href="#Close%20Window" title="Link to this keyword">Close Window</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Closes currently opened pop-up window.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Confirm Action" href="#Confirm%20Action" title="Link to this keyword">Confirm Action</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Handle%20Alert" class="name">Handle Alert</a> instead.</p>
<p>By default accepts an alert, but this behavior can be altered with <a href="#Choose%20Cancel%20On%20Next%20Confirmation" class="name">Choose Cancel On Next Confirmation</a> and <a href="#Choose%20Ok%20On%20Next%20Confirmation" class="name">Choose Ok On Next Confirmation</a> keywords. New <a href="#Handle%20Alert" class="name">Handle Alert</a> keyword accepts the action how to handle the alert as a normal argument and should be used instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Create Webdriver" href="#Create%20Webdriver" title="Link to this keyword">Create Webdriver</a>         </td>         <td class="args">                          <span>driver_name</span>,                           <span>alias=None</span>,                           <span>kwargs={}</span>,                           <span>**init_kwargs</span>                      </td>                  <td class="doc"><p>Creates an instance of Selenium WebDriver.</p>
<p>Like <a href="#Open%20Browser" class="name">Open Browser</a>, but 
allows passing arguments to the created WebDriver instance directly. 
This keyword should only be used if functionality provided by <a href="#Open%20Browser" class="name">Open Browser</a> is not adequate.</p>
<p><code>driver_name</code> must be an WebDriver implementation name like Firefox, Chrome, Ie, Opera, Safari, PhantomJS, or Remote.</p>
<p>The initialized WebDriver can be configured either with a Python dictionary <code>kwargs</code> or by using keyword arguments <code>**init_kwargs</code>. These arguments are passed directly to WebDriver without any processing. See <a href="https://seleniumhq.github.io/selenium/docs/api/py/api.html">Selenium API documentation</a> for details about the supported arguments.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td># Use proxy with Firefox</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>${proxy}=</td>
<td><span class="name">Evaluate</span></td>
<td>sys.modules['selenium.webdriver'].Proxy()</td>
<td>sys, selenium.webdriver</td>
</tr>
<tr>
<td>${proxy.http_proxy}=</td>
<td><span class="name">Set Variable</span></td>
<td>localhost:8888</td>
<td></td>
</tr>
<tr>
<td><a href="#Create%20Webdriver" class="name">Create Webdriver</a></td>
<td>Firefox</td>
<td>proxy=${proxy}</td>
<td></td>
</tr>
<tr>
<td># Use proxy with PhantomJS</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>${service args}=</td>
<td><span class="name">Create List</span></td>
<td>--proxy=192.168.132.104:8888</td>
<td></td>
</tr>
<tr>
<td><a href="#Create%20Webdriver" class="name">Create Webdriver</a></td>
<td>PhantomJS</td>
<td>service_args=${service args}</td>
<td></td>
</tr>
</tbody></table>
<p>Returns the index of this browser instance which can be used later to
 switch back to it. Index starts from 1 and is reset back to it when <a href="#Close%20All%20Browsers" class="name">Close All Browsers</a> keyword is used. See <a href="#Switch%20Browser" class="name">Switch Browser</a> for an example.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Current Frame Contains" href="#Current%20Frame%20Contains" title="Link to this keyword">Current Frame Contains</a>         </td>         <td class="args">                          <span>text</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Current%20Frame%20Should%20Contain" class="name">Current Frame Should Contain</a> instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Current Frame Should Contain" href="#Current%20Frame%20Should%20Contain" title="Link to this keyword">Current Frame Should Contain</a>         </td>         <td class="args">                          <span>text</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies that current frame contains <code>text</code>.</p>
<p>See <a href="#Page%20Should%20Contain" class="name">Page Should Contain</a> for explanation about the <code>loglevel</code> argument.</p>
<p>Prior to Selenium2Library 3.0 this keyword was named <a href="#Current%20Frame%20Contains" class="name">Current Frame Contains</a>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Current Frame Should Not Contain" href="#Current%20Frame%20Should%20Not%20Contain" title="Link to this keyword">Current Frame Should Not Contain</a>         </td>         <td class="args">                          <span>text</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies that current frame does not contains <code>text</code>.</p>
<p>See <a href="#Page%20Should%20Contain" class="name">Page Should Contain</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Delete All Cookies" href="#Delete%20All%20Cookies" title="Link to this keyword">Delete All Cookies</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Deletes all cookies.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Delete Cookie" href="#Delete%20Cookie" title="Link to this keyword">Delete Cookie</a>         </td>         <td class="args">                          <span>name</span>                      </td>                  <td class="doc"><p>Deletes cookie matching <code>name</code>.</p>
<p>If the cookie is not found, nothing happens.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Dismiss Alert" href="#Dismiss%20Alert" title="Link to this keyword">Dismiss Alert</a>         </td>         <td class="args">                          <span>accept=True</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Handle%20Alert" class="name">Handle Alert</a> instead.</p>
<p>Contrary to its name, this keyword accepts the alert by default (i.e. presses <code>Ok</code>). <code>accept</code> can be set to a false value to dismiss the alert (i.e. to press <code>Cancel</code>).</p>
<p><a href="#Handle%20Alert" class="name">Handle Alert</a> has better support for controlling should the alert be accepted, dismissed, or left open.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Double Click Element" href="#Double%20Click%20Element" title="Link to this keyword">Double Click Element</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Double click element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Drag And Drop" href="#Drag%20And%20Drop" title="Link to this keyword">Drag And Drop</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>target</span>                      </td>                  <td class="doc"><p>Drags element identified by <code>locator</code> into <code>target</code> element.</p>
<p>The <code>locator</code> argument is the locator of the dragged element and the <code>target</code> is the locator of the target. See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Drag%20And%20Drop" class="name">Drag And Drop</a></td>
<td>css:div#element</td>
<td>css:div.target</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Drag And Drop By Offset" href="#Drag%20And%20Drop%20By%20Offset" title="Link to this keyword">Drag And Drop By Offset</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>xoffset</span>,                           <span>yoffset</span>                      </td>                  <td class="doc"><p>Drags element identified with <code>locator</code> by <code>xoffset/yoffset</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Element will be moved by <code>xoffset</code> and <code>yoffset</code>, each of which is a negative or positive number specifying the offset.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Drag%20And%20Drop%20By%20Offset" class="name">Drag And Drop By Offset</a></td>
<td>myElem</td>
<td>50</td>
<td>-35</td>
<td># Move myElem 50px right and 35px down</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Should Be Disabled" href="#Element%20Should%20Be%20Disabled" title="Link to this keyword">Element Should Be Disabled</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Verifies that element identified with <code>locator</code> is disabled.</p>
<p>This keyword considers also elements that are read-only to be disabled.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Should Be Enabled" href="#Element%20Should%20Be%20Enabled" title="Link to this keyword">Element Should Be Enabled</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Verifies that element identified with <code>locator</code> is enabled.</p>
<p>This keyword considers also elements that are read-only to be disabled.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Should Be Focused" href="#Element%20Should%20Be%20Focused" title="Link to this keyword">Element Should Be Focused</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Verifies that element identified with <code>locator</code> is focused.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>New in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Should Be Visible" href="#Element%20Should%20Be%20Visible" title="Link to this keyword">Element Should Be Visible</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies that the element identified by <code>locator</code> is visible.</p>
<p>Herein, visible means that the element is logically visible, not 
optically visible in the current browser viewport. For example, an 
element that carries <code>display:none</code> is not logically visible, so using this keyword on that element would fail.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The <code>message</code> argument can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Should Contain" href="#Element%20Should%20Contain" title="Link to this keyword">Element Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies that element <code>locator</code> contains text <code>expected</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The <code>message</code> argument can be used to override the default error message.</p>
<p>Use <a href="#Element%20Text%20Should%20Be" class="name">Element Text Should Be</a> if you want to match the exact text, not a substring.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Should Not Be Visible" href="#Element%20Should%20Not%20Be%20Visible" title="Link to this keyword">Element Should Not Be Visible</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies that the element identified by <code>locator</code> is NOT visible.</p>
<p>Passes if element does not exists. See <a href="#Element%20Should%20Be%20Visible" class="name">Element Should Be Visible</a> for more information about visibility and supported arguments.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Should Not Contain" href="#Element%20Should%20Not%20Contain" title="Link to this keyword">Element Should Not Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies that element <code>locator</code> does not contains text <code>expected</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The <code>message</code> argument can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Element Text Should Be" href="#Element%20Text%20Should%20Be" title="Link to this keyword">Element Text Should Be</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies that element <code>locator</code> contains exact text <code>expected</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The <code>message</code> argument can be used to override the default error message.</p>
<p>Use <a href="#Element%20Should%20Contain" class="name">Element Should Contain</a> if a substring match is desired.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Execute Async Javascript" href="#Execute%20Async%20Javascript" title="Link to this keyword">Execute Async Javascript</a>         </td>         <td class="args">                          <span>*code</span>                      </td>                  <td class="doc"><p>Executes asynchronous JavaScript code.</p>
<p>Similar to <a href="#Execute%20Javascript" class="name">Execute Javascript</a>
 except that scripts executed with this keyword must explicitly signal 
they are finished by invoking the provided callback. This callback is 
always injected into the executed function as the last argument.</p>
<p>Scripts must complete within the script timeout or this keyword will fail. See the <span class="name">Timeouts</span> section for more information.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Execute%20Async%20Javascript" class="name">Execute Async JavaScript</a></td>
<td>var callback = arguments[arguments.length - 1]; window.setTimeout(callback, 2000);</td>
<td></td>
</tr>
<tr>
<td><a href="#Execute%20Async%20Javascript" class="name">Execute Async JavaScript</a></td>
<td>${CURDIR}/async_js_to_execute.js</td>
<td></td>
</tr>
<tr>
<td>${result} =</td>
<td><a href="#Execute%20Async%20Javascript" class="name">Execute Async JavaScript</a></td>
<td></td>
</tr>
<tr>
<td>...</td>
<td>var callback = arguments[arguments.length - 1];</td>
<td></td>
</tr>
<tr>
<td>...</td>
<td>function answer(){callback("text");};</td>
<td></td>
</tr>
<tr>
<td>...</td>
<td>window.setTimeout(answer, 2000);</td>
<td></td>
</tr>
<tr>
<td><span class="name">Should Be Equal</span></td>
<td>${result}</td>
<td>text</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Execute Javascript" href="#Execute%20Javascript" title="Link to this keyword">Execute Javascript</a>         </td>         <td class="args">                          <span>*code</span>                      </td>                  <td class="doc"><p>Executes the given JavaScript code.</p>
<p><code>code</code> may contain multiple lines of code and may be 
divided into multiple cells in the test data. In that case, the parts 
are concatenated together without adding spaces.</p>
<p>If <code>code</code> is an absolute path to an existing file, the 
JavaScript to execute will be read from that file. Forward slashes work 
as a path separator on all operating systems.</p>
<p>The JavaScript executes in the context of the currently selected frame or window as the body of an anonymous function. Use <code>window</code> to refer to the window of your application and <code>document</code> to refer to the document object of the current frame or window, e.g. <code>document.getElementById('example')</code>.</p>
<p>This keyword returns whatever the executed JavaScript code returns. Return values are converted to the appropriate Python types.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Execute%20Javascript" class="name">Execute JavaScript</a></td>
<td>window.myFunc('arg1', 'arg2')</td>
<td></td>
</tr>
<tr>
<td><a href="#Execute%20Javascript" class="name">Execute JavaScript</a></td>
<td>${CURDIR}/js_to_execute.js</td>
<td></td>
</tr>
<tr>
<td>${sum} =</td>
<td><a href="#Execute%20Javascript" class="name">Execute JavaScript</a></td>
<td>return 1 + 1;</td>
</tr>
<tr>
<td><span class="name">Should Be Equal</span></td>
<td>${sum}</td>
<td>${2}</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Focus" href="#Focus" title="Link to this keyword">Focus</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Set%20Focus%20To%20Element" class="name">Set Focus To Element</a> instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Frame Should Contain" href="#Frame%20Should%20Contain" title="Link to this keyword">Frame Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>text</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies that frame identified by <code>locator</code> contains <code>text</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>See <a href="#Page%20Should%20Contain" class="name">Page Should Contain</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Alert Message" href="#Get%20Alert%20Message" title="Link to this keyword">Get Alert Message</a>         </td>         <td class="args">                          <span>dismiss=True</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Handle%20Alert" class="name">Handle Alert</a> instead.</p>
<p>Returns the message the alert has. Dismisses the alert by default (i.e. presses <code>Cancel</code>) and setting <code>dismiss</code> to false leaves the alert open. There is no support to accept the alert (i.e. to press <code>Ok</code>).</p>
<p><a href="#Handle%20Alert" class="name">Handle Alert</a> has better support for controlling should the alert be accepted, dismissed, or left open.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get All Links" href="#Get%20All%20Links" title="Link to this keyword">Get All Links</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns a list containing ids of all links found in current page.</p>
<p>If a link has no id, an empty string will be in the list instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Cookie" href="#Get%20Cookie" title="Link to this keyword">Get Cookie</a>         </td>         <td class="args">                          <span>name</span>                      </td>                  <td class="doc"><p>Returns information of cookie with <code>name</code> as an object.</p>
<p>If no cookie is found with <code>name</code>, keyword fails. The 
cookie object contains details about the cookie. Attributes available in
 the object are documented in the table below.</p>
<table border="1">
<tbody><tr>
<th>Attribute</th>
<th>Explanation</th>
</tr>
<tr>
<td>name</td>
<td>The name of a cookie.</td>
</tr>
<tr>
<td>value</td>
<td>Value of the cookie.</td>
</tr>
<tr>
<td>path</td>
<td>Indicates a URL path, for example <code>/</code>.</td>
</tr>
<tr>
<td>domain</td>
<td>The domain the cookie is visible to.</td>
</tr>
<tr>
<td>secure</td>
<td>When true, cookie is only used with HTTPS connections.</td>
</tr>
<tr>
<td>httpOnly</td>
<td>When true, cookie is not accessible via JavaScript.</td>
</tr>
<tr>
<td>expiry</td>
<td>Python datetime object indicating when the cookie expires.</td>
</tr>
</tbody></table>
<p>See the <a href="https://w3c.github.io/webdriver/webdriver-spec.html#cookies">WebDriver specification</a> for details about the cookie information. Notice that <code>expiry</code> is specified as a <a href="https://docs.python.org/3/library/datetime.html#datetime.datetime">datetime object</a>, not as seconds since Unix Epoch like WebDriver natively does.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Add%20Cookie" class="name">Add Cookie</a></td>
<td>foo</td>
<td>bar</td>
</tr>
<tr>
<td>${cookie} =</td>
<td><a href="#Get%20Cookie" class="name">Get Cookie</a></td>
<td>foo</td>
</tr>
<tr>
<td><span class="name">Should Be Equal</span></td>
<td>${cookie.name}</td>
<td>bar</td>
</tr>
<tr>
<td><span class="name">Should Be Equal</span></td>
<td>${cookie.value}</td>
<td>foo</td>
</tr>
<tr>
<td><span class="name">Should Be True</span></td>
<td>${cookie.expiry.year} &gt; 2017</td>
<td></td>
</tr>
</tbody></table>
<p>New in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Cookie Value" href="#Get%20Cookie%20Value" title="Link to this keyword">Get Cookie Value</a>         </td>         <td class="args">                          <span>name</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Get%20Cookie" class="name">Get Cookie</a> instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Cookies" href="#Get%20Cookies" title="Link to this keyword">Get Cookies</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns all cookies of the current page.</p>
<p>The cookie information is returned as a single string in format <code>name1=value1; name2=value2; name3=value3</code>. It can be used, for example, for logging purposes or in headers when sending HTTP requests.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Element Attribute" href="#Get%20Element%20Attribute" title="Link to this keyword">Get Element Attribute</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>attribute=None</span>                      </td>                  <td class="doc"><p>Returns value of <code>attribute</code> from element <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${id}=</td>
<td><a href="#Get%20Element%20Attribute" class="name">Get Element Attribute</a></td>
<td>css:h1</td>
<td>id</td>
</tr>
</tbody></table>
<p>Passing attribute name as part of the <code>locator</code> is deprecated since Selenium2Library 3.0. The explicit <code>attribute</code> argument should be used instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Element Count" href="#Get%20Element%20Count" title="Link to this keyword">Get Element Count</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns number of elements matching <code>locator</code>.</p>
<p>If you wish to assert the number of matching elements, use <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> with <code>limit</code> argument. Keyword will always return an integer.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${count} =</td>
<td><a href="#Get%20Element%20Count" class="name">Get Element Count</a></td>
<td>name:div_name</td>
</tr>
<tr>
<td><span class="name">Should Be True</span></td>
<td>${count} &gt; 2</td>
<td></td>
</tr>
</tbody></table>
<p>New in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Element Size" href="#Get%20Element%20Size" title="Link to this keyword">Get Element Size</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns width and height of element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Both width and height are returned as integers.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${width}</td>
<td>${height} =</td>
<td><a href="#Get%20Element%20Size" class="name">Get Element Size</a></td>
<td>css:div#container</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Horizontal Position" href="#Get%20Horizontal%20Position" title="Link to this keyword">Get Horizontal Position</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns horizontal position of element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The position is returned in pixels off the left side of the page, as an integer.</p>
<p>See also <a href="#Get%20Vertical%20Position" class="name">Get Vertical Position</a>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get List Items" href="#Get%20List%20Items" title="Link to this keyword">Get List Items</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>values=False</span>                      </td>                  <td class="doc"><p>Returns all labels or values of selection list <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Returns visible labels by default, but values can be returned by setting the <code>values</code> argument to a true value (see <a href="#Boolean%20arguments" class="name">Boolean arguments</a>).</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${labels} =</td>
<td><a href="#Get%20List%20Items" class="name">Get List Items</a></td>
<td>mylist</td>
<td></td>
</tr>
<tr>
<td>${values} =</td>
<td><a href="#Get%20List%20Items" class="name">Get List Items</a></td>
<td>css:#example select</td>
<td>values=True</td>
</tr>
</tbody></table>
<p>Support to return values is new in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Location" href="#Get%20Location" title="Link to this keyword">Get Location</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns the current browser URL.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Locations" href="#Get%20Locations" title="Link to this keyword">Get Locations</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns and logs URLs of all known browser windows.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Matching Xpath Count" href="#Get%20Matching%20Xpath%20Count" title="Link to this keyword">Get Matching Xpath Count</a>         </td>         <td class="args">                          <span>xpath</span>,                           <span>return_str=True</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Get%20Element%20Count" class="name">Get Element Count</a> instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Selected List Label" href="#Get%20Selected%20List%20Label" title="Link to this keyword">Get Selected List Label</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns label of selected option from selection list <code>locator</code>.</p>
<p>If there are multiple selected options, label of the first option is returned.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Selected List Labels" href="#Get%20Selected%20List%20Labels" title="Link to this keyword">Get Selected List Labels</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns labels of selected options from selection list <code>locator</code>.</p>
<p>Starting from Selenium2Library 3.0, returns an empty list if there are no selections. In earlier versions this caused an error.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Selected List Value" href="#Get%20Selected%20List%20Value" title="Link to this keyword">Get Selected List Value</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns value of selected option from selection list <code>locator</code>.</p>
<p>If there are multiple selected options, value of the first option is returned.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Selected List Values" href="#Get%20Selected%20List%20Values" title="Link to this keyword">Get Selected List Values</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns values of selected options from selection list <code>locator</code>.</p>
<p>Starting from Selenium2Library 3.0, returns an empty list if there are no selections. In earlier versions this caused an error.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Selenium Implicit Wait" href="#Get%20Selenium%20Implicit%20Wait" title="Link to this keyword">Get Selenium Implicit Wait</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Gets the implicit wait value used by Selenium.</p>
<p>The value is returned as a human readable string like <code>1 second</code>.</p>
<p>See the <a href="#Implicit%20wait" class="name">Implicit wait</a> section above for more information.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Selenium Speed" href="#Get%20Selenium%20Speed" title="Link to this keyword">Get Selenium Speed</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Gets the delay that is waited after each Selenium command.</p>
<p>The value is returned as a human readable string like <code>1 second</code>.</p>
<p>See the <a href="#Selenium%20speed" class="name">Selenium Speed</a> section above for more information.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Selenium Timeout" href="#Get%20Selenium%20Timeout" title="Link to this keyword">Get Selenium Timeout</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Gets the timeout that is used by various keywords.</p>
<p>The value is returned as a human readable string like <code>1 second</code>.</p>
<p>See the <a href="#Timeout" class="name">Timeout</a> section above for more information.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Source" href="#Get%20Source" title="Link to this keyword">Get Source</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns the entire HTML source of the current page or frame.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Table Cell" href="#Get%20Table%20Cell" title="Link to this keyword">Get Table Cell</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>row</span>,                           <span>column</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Returns contents of table cell.</p>
<p>The table is located using the <code>locator</code> argument and its cell found using <code>row</code> and <code>column</code>. See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Both row and column indexes start from 1, and header and footer rows 
are included in the count. It is possible to refer to rows and columns 
from the end by using negative indexes so that -1 is the last 
row/column, -2 is the second last, and so on.</p>
<p>All <code>&lt;th&gt;</code> and <code>&lt;td&gt;</code> elements anywhere in the table are considered to be cells.</p>
<p>See <a href="#Page%20Should%20Contain" class="name">Page Should Contain</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Text" href="#Get%20Text" title="Link to this keyword">Get Text</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns the text value of element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Title" href="#Get%20Title" title="Link to this keyword">Get Title</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns the title of current page.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Value" href="#Get%20Value" title="Link to this keyword">Get Value</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns the value attribute of element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Vertical Position" href="#Get%20Vertical%20Position" title="Link to this keyword">Get Vertical Position</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns vertical position of element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The position is returned in pixels off the top of the page, as an integer.</p>
<p>See also <a href="#Get%20Horizontal%20Position" class="name">Get Horizontal Position</a>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get WebElement" href="#Get%20WebElement" title="Link to this keyword">Get WebElement</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns the first WebElement matching the given <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get WebElements" href="#Get%20WebElements" title="Link to this keyword">Get WebElements</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Returns list of WebElement objects matching the <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Starting from Selenium2Library 3.0, the keyword returns an empty list
 if there are no matching elements. In previous releases the keyword 
failed in this case.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Window Handles" href="#Get%20Window%20Handles" title="Link to this keyword">Get Window Handles</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Return all current window handles as a list.</p>
<p>Can be used as a list of windows to exclude with <a href="#Select%20Window" class="name">Select Window</a>.</p>
<p>Prior to Selenium2Library 3.0, this keyword was named <a href="#List%20Windows" class="name">List Windows</a>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Window Identifiers" href="#Get%20Window%20Identifiers" title="Link to this keyword">Get Window Identifiers</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns and logs id attributes of all known browser windows.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Window Names" href="#Get%20Window%20Names" title="Link to this keyword">Get Window Names</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns and logs names of all known browser windows.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Window Position" href="#Get%20Window%20Position" title="Link to this keyword">Get Window Position</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns current window position.</p>
<p>Position is relative to the top left corner of the screen. Returned values are integers. See also <a href="#Set%20Window%20Position" class="name">Set Window Position</a>.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${x}</td>
<td>${y}=</td>
<td><a href="#Get%20Window%20Position" class="name">Get Window Position</a></td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Window Size" href="#Get%20Window%20Size" title="Link to this keyword">Get Window Size</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns current window width and height as integers.</p>
<p>See also <a href="#Set%20Window%20Size" class="name">Set Window Size</a>.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${width}</td>
<td>${height}=</td>
<td><a href="#Get%20Window%20Size" class="name">Get Window Size</a></td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Get Window Titles" href="#Get%20Window%20Titles" title="Link to this keyword">Get Window Titles</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Returns and logs titles of all known browser windows.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Go Back" href="#Go%20Back" title="Link to this keyword">Go Back</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Simulates the user clicking the back button on their browser.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Go To" href="#Go%20To" title="Link to this keyword">Go To</a>         </td>         <td class="args">                          <span>url</span>                      </td>                  <td class="doc"><p>Navigates the active browser instance to the provided <code>url</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Handle Alert" href="#Handle%20Alert" title="Link to this keyword">Handle Alert</a>         </td>         <td class="args">                          <span>action=ACCEPT</span>,                           <span>timeout=None</span>                      </td>                  <td class="doc"><p>Handles the current alert and returns its message.</p>
<p>By default the alert is accepted, but this can be controlled with the <code>action</code> argument that supports the following case-insensitive values:</p>
<ul>
<li><code>ACCEPT</code>: Accept the alert i.e. press <code>Ok</code>. Default.</li>
<li><code>DISMISS</code>: Dismiss the alert i.e. press <code>Cancel</code>.</li>
<li><code>LEAVE</code>: Leave the alert open.</li>
</ul>
<p>The <code>timeout</code> argument specifies how long to wait for the alert to appear. If it is not given, the global default <a href="#Timeout" class="name">timeout</a> is used instead.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td>Handle Alert</td>
<td></td>
<td></td>
<td># Accept alert.</td>
</tr>
<tr>
<td>Handle Alert</td>
<td>action=DISMISS</td>
<td></td>
<td># Dismiss alert.</td>
</tr>
<tr>
<td>Handle Alert</td>
<td>timeout=10 s</td>
<td></td>
<td># Use custom timeout and accept alert.</td>
</tr>
<tr>
<td>Handle Alert</td>
<td>DISMISS</td>
<td>1 min</td>
<td># Use custom timeout and dismiss alert.</td>
</tr>
<tr>
<td>${message} =</td>
<td>Handle Alert</td>
<td></td>
<td># Accept alert and get its message.</td>
</tr>
<tr>
<td>${message} =</td>
<td>Handle Alert</td>
<td>LEAVE</td>
<td># Leave alert open and get its message.</td>
</tr>
</tbody></table>
<p>New in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Input Password" href="#Input%20Password" title="Link to this keyword">Input Password</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>password</span>                      </td>                  <td class="doc"><p>Types the given password into text field identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Difference compared to <a href="#Input%20Text" class="name">Input Text</a> is that this keyword does not log the given password on the INFO level. Notice that if you use the keyword like</p>
<table border="1">
<tbody><tr>
<td>Input Password</td>
<td>password_field</td>
<td>password</td>
</tr>
</tbody></table>
<p>the password is shown as a normal keyword argument. A way to avoid that is using variables like</p>
<table border="1">
<tbody><tr>
<td>Input Password</td>
<td>password_field</td>
<td>${PASSWORD}</td>
</tr>
</tbody></table>
<p>Notice also that Selenium2Library logs all the communication with 
browser drivers using the DEBUG level, and the actual password can be 
seen there. Additionally Robot Framework logs all arguments using the 
TRACE level. Tests must thus not be executed using level below INFO if 
password should not be logged in any format.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Input Text" href="#Input%20Text" title="Link to this keyword">Input Text</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>text</span>                      </td>                  <td class="doc"><p>Types the given <code>text</code> into text field identified by <code>locator</code>.</p>
<p>Use <a href="#Input%20Password" class="name">Input Password</a> if you do not want the given <code>text</code> to be logged.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Input Text Into Alert" href="#Input%20Text%20Into%20Alert" title="Link to this keyword">Input Text Into Alert</a>         </td>         <td class="args">                          <span>text</span>,                           <span>action=ACCEPT</span>,                           <span>timeout=None</span>                      </td>                  <td class="doc"><p>Types the given <code>text</code> into an input field in an alert.</p>
<p>The alert is accepted by default, but that behavior can be controlled by using the <code>action</code> argument same way as with <a href="#Handle%20Alert" class="name">Handle Alert</a>.</p>
<p><code>timeout</code> specifies how long to wait for the alert to appear. If it is not given, the global default <a href="#Timeout" class="name">timeout</a> is used instead.</p>
<p>New in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Input Text Into Prompt" href="#Input%20Text%20Into%20Prompt" title="Link to this keyword">Input Text Into Prompt</a>         </td>         <td class="args">                          <span>text</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Input%20Text%20Into%20Alert" class="name">Input Text Into Alert</a> instead.</p>
<p>Types the given <code>text</code> into an input field in an alert. Leaves the alert open.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="List Selection Should Be" href="#List%20Selection%20Should%20Be" title="Link to this keyword">List Selection Should Be</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*expected</span>                      </td>                  <td class="doc"><p>Verifies selection list <code>locator</code> has <code>expected</code> options selected.</p>
<p>It is possible to give expected options both as visible labels and as
 values. Starting from Selenium2Library 3.0, mixing labels and values is
 not possible. Order of the selected options is not validated.</p>
<p>If no expected options are given, validates that the list has no selections. A more explicit alternative is using <a href="#List%20Should%20Have%20No%20Selections" class="name">List Should Have No Selections</a>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#List%20Selection%20Should%20Be" class="name">List Selection Should Be</a></td>
<td>gender</td>
<td>Female</td>
<td></td>
</tr>
<tr>
<td><a href="#List%20Selection%20Should%20Be" class="name">List Selection Should Be</a></td>
<td>interests</td>
<td>Test Automation</td>
<td>Python</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="List Should Have No Selections" href="#List%20Should%20Have%20No%20Selections" title="Link to this keyword">List Should Have No Selections</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Verifies selection list <code>locator</code> has no options selected.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="List Windows" href="#List%20Windows" title="Link to this keyword">List Windows</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Get%20Window%20Handles" class="name">Get Window Handles</a> instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Location Should Be" href="#Location%20Should%20Be" title="Link to this keyword">Location Should Be</a>         </td>         <td class="args">                          <span>url</span>                      </td>                  <td class="doc"><p>Verifies that current URL is exactly <code>url</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Location Should Contain" href="#Location%20Should%20Contain" title="Link to this keyword">Location Should Contain</a>         </td>         <td class="args">                          <span>expected</span>                      </td>                  <td class="doc"><p>Verifies that current URL contains <code>expected</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Locator Should Match X Times" href="#Locator%20Should%20Match%20X%20Times" title="Link to this keyword">Locator Should Match X Times</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>x</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Deprecated, use <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> with <code>limit</code> argument instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Log Location" href="#Log%20Location" title="Link to this keyword">Log Location</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Logs and returns the current URL.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Log Source" href="#Log%20Source" title="Link to this keyword">Log Source</a>         </td>         <td class="args">                          <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Logs and returns the HTML source of the current page or frame.</p>
<p>The <code>loglevel</code> argument defines the used log level. Valid log levels are <code>WARN</code>, <code>INFO</code> (default), <code>DEBUG</code>, and <code>NONE</code> (no logging).</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Log Title" href="#Log%20Title" title="Link to this keyword">Log Title</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Logs and returns the title of current page.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Maximize Browser Window" href="#Maximize%20Browser%20Window" title="Link to this keyword">Maximize Browser Window</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Maximizes current browser window.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Mouse Down" href="#Mouse%20Down" title="Link to this keyword">Mouse Down</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Simulates pressing the left mouse button on the element <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The element is pressed without releasing the mouse button.</p>
<p>See also the more specific keywords <a href="#Mouse%20Down%20On%20Image" class="name">Mouse Down On Image</a> and <a href="#Mouse%20Down%20On%20Link" class="name">Mouse Down On Link</a>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Mouse Down On Image" href="#Mouse%20Down%20On%20Image" title="Link to this keyword">Mouse Down On Image</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Simulates a mouse down event on an image identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id</code>, <code>name</code>, <code>src</code> and <code>alt</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Mouse Down On Link" href="#Mouse%20Down%20On%20Link" title="Link to this keyword">Mouse Down On Link</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Simulates a mouse down event on a link identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id</code>, <code>name</code>, <code>href</code> and the link text.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Mouse Out" href="#Mouse%20Out" title="Link to this keyword">Mouse Out</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Simulates moving mouse away from the element <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Mouse Over" href="#Mouse%20Over" title="Link to this keyword">Mouse Over</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Simulates hovering mouse over the element <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Mouse Up" href="#Mouse%20Up" title="Link to this keyword">Mouse Up</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Simulates releasing the left mouse button on the element <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Open Browser" href="#Open%20Browser" title="Link to this keyword">Open Browser</a>         </td>         <td class="args">                          <span>url</span>,                           <span>browser=firefox</span>,                           <span>alias=None</span>,                           <span>remote_url=False</span>,                           <span>desired_capabilities=None</span>,                           <span>ff_profile_dir=None</span>                      </td>                  <td class="doc"><p>Opens a new browser instance to the given <code>url</code>.</p>
<p>The <code>browser</code> argument specifies which browser to use, and
 the supported browser are listed in the table below. The browser names 
are case-insensitive and some browsers have multiple supported names.</p>
<table border="1">
<tbody><tr>
<th>Browser</th>
<th>Name(s)</th>
</tr>
<tr>
<td>Firefox</td>
<td>firefox, ff</td>
</tr>
<tr>
<td>Google Chrome</td>
<td>googlechrome, chrome, gc</td>
</tr>
<tr>
<td>Internet Explorer</td>
<td>internetexplorer, ie</td>
</tr>
<tr>
<td>Edge</td>
<td>edge</td>
</tr>
<tr>
<td>Safari</td>
<td>safari</td>
</tr>
<tr>
<td>Opera</td>
<td>opera</td>
</tr>
<tr>
<td>Android</td>
<td>android</td>
</tr>
<tr>
<td>Iphone</td>
<td>iphone</td>
</tr>
<tr>
<td>PhantomJS</td>
<td>phantomjs</td>
</tr>
<tr>
<td>HTMLUnit</td>
<td>htmlunit</td>
</tr>
<tr>
<td>HTMLUnit with Javascript</td>
<td>htmlunitwithjs</td>
</tr>
</tbody></table>
<p>To be able to actually use one of these browsers, you need to have a matching Selenium browser driver available. See the <a href="https://github.com/robotframework/Selenium2Library#browser-drivers">project documentation</a> for more details.</p>
<p>Optional <code>alias</code> is an alias given for this browser 
instance and it can be used for switching between browsers. An 
alternative approach for switching is using an index returned by this 
keyword. These indices start from 1, are incremented when new browsers 
are opened, and reset back to 1 when <a href="#Close%20All%20Browsers" class="name">Close All Browsers</a> is called. See <a href="#Switch%20Browser" class="name">Switch Browser</a> for more information and examples.</p>
<p>Optional <code>remote_url</code> is the URL for a remote Selenium server. If you specify a value for a remote, you can also specify <code>desired_capabilities</code> to configure, for example, a proxy server for Internet Explorer or a browser and operating system when using <a href="http://saucelabs.com/">Sauce Labs</a>. Desired capabilities can be given either as a Python dictionary or as a string in format <code>key1:value1,key2:value2</code>. <a href="https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities">Selenium documentation</a> lists possible capabilities that can be enabled.</p>
<p>Optional <code>ff_profile_dir</code> is the path to the Firefox 
profile directory if you wish to overwrite the default profile Selenium 
uses. Notice that prior to Selenium2Library 3.0, the library contained 
its own profile that was used by default.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Open%20Browser" class="name">Open Browser</a></td>
<td><a href="http://example.com/">http://example.com</a></td>
<td>Chrome</td>
<td></td>
</tr>
<tr>
<td><a href="#Open%20Browser" class="name">Open Browser</a></td>
<td><a href="http://example.com/">http://example.com</a></td>
<td>Firefox</td>
<td>alias=Firefox</td>
</tr>
<tr>
<td><a href="#Open%20Browser" class="name">Open Browser</a></td>
<td><a href="http://example.com/">http://example.com</a></td>
<td>Edge</td>
<td>remote_url=http://127.0.0.1:4444/wd/hub</td>
</tr>
</tbody></table>
<p>If the provided configuration options are not enough, it is possible to use <a href="#Create%20Webdriver" class="name">Create Webdriver</a> to customize browser initialization even more.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Open Context Menu" href="#Open%20Context%20Menu" title="Link to this keyword">Open Context Menu</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Opens context menu on element identified by <code>locator</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain" href="#Page%20Should%20Contain" title="Link to this keyword">Page Should Contain</a>         </td>         <td class="args">                          <span>text</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies that current page contains <code>text</code>.</p>
<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <code>loglevel</code> argument. Valid log levels are <code>DEBUG</code>, <code>INFO</code> (default), <code>WARN</code>, and <code>NONE</code>. If the log level is <code>NONE</code> or below the current active log level the source will not be logged.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain Button" href="#Page%20Should%20Contain%20Button" title="Link to this keyword">Page Should Contain Button</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies button <code>locator</code> is found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id</code>, <code>name</code> and <code>value</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain Checkbox" href="#Page%20Should%20Contain%20Checkbox" title="Link to this keyword">Page Should Contain Checkbox</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies checkbox <code>locator</code> is found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain Element" href="#Page%20Should%20Contain%20Element" title="Link to this keyword">Page Should Contain Element</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>,                           <span>limit=None</span>                      </td>                  <td class="doc"><p>Verifies that element <code>locator</code> is found on the current page.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>The <code>message</code> argument can be used to override the default error message.</p>
<p>The <code>limit</code> argument can used to define how many elements the page should contain. When <code>limit</code> is <code>None</code> (default) page can contain one or more elements. When limit is a number, page must contain same number of elements.</p>
<p>See <a href="#Page%20Should%20Contain" class="name">Page Should Contain</a> for explanation about the <code>loglevel</code> argument.</p>
<p>Examples assumes that locator matches to two elements.</p>
<table border="1">
<tbody><tr>
<td><a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a></td>
<td>div_name</td>
<td>limit=1</td>
<td># Keyword fails.</td>
</tr>
<tr>
<td><a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a></td>
<td>div_name</td>
<td>limit=2</td>
<td># Keyword passes.</td>
</tr>
<tr>
<td><a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a></td>
<td>div_name</td>
<td>limit=none</td>
<td># None is considered one or more.</td>
</tr>
<tr>
<td><a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a></td>
<td>div_name</td>
<td></td>
<td># Same as above.</td>
</tr>
</tbody></table>
<p>The <code>limit</code> argument is new in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain Image" href="#Page%20Should%20Contain%20Image" title="Link to this keyword">Page Should Contain Image</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies image identified by <code>locator</code> is found from current page.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id</code>, <code>name</code>, <code>src</code> and <code>alt</code>.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain Link" href="#Page%20Should%20Contain%20Link" title="Link to this keyword">Page Should Contain Link</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies link identified by <code>locator</code> is found from current page.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id</code>, <code>name</code>, <code>href</code> and the link text.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain List" href="#Page%20Should%20Contain%20List" title="Link to this keyword">Page Should Contain List</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies selection list <code>locator</code> is found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain Radio Button" href="#Page%20Should%20Contain%20Radio%20Button" title="Link to this keyword">Page Should Contain Radio Button</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies radio button <code>locator</code> is found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id</code>, <code>name</code> and <code>value</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Contain Textfield" href="#Page%20Should%20Contain%20Textfield" title="Link to this keyword">Page Should Contain Textfield</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies text field <code>locator</code> is found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain" href="#Page%20Should%20Not%20Contain" title="Link to this keyword">Page Should Not Contain</a>         </td>         <td class="args">                          <span>text</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies the current page does not contain <code>text</code>.</p>
<p>See <a href="#Page%20Should%20Contain" class="name">Page Should Contain</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain Button" href="#Page%20Should%20Not%20Contain%20Button" title="Link to this keyword">Page Should Not Contain Button</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies button <code>locator</code> is not found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id</code>, <code>name</code> and <code>value</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain Checkbox" href="#Page%20Should%20Not%20Contain%20Checkbox" title="Link to this keyword">Page Should Not Contain Checkbox</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies checkbox <code>locator</code> is not found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain Element" href="#Page%20Should%20Not%20Contain%20Element" title="Link to this keyword">Page Should Not Contain Element</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies that element <code>locator</code> is found on the current page.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>See <a href="#Page%20Should%20Contain" class="name">Page Should Contain</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain Image" href="#Page%20Should%20Not%20Contain%20Image" title="Link to this keyword">Page Should Not Contain Image</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies image identified by <code>locator</code> is found from current page.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id</code>, <code>name</code>, <code>src</code> and <code>alt</code>.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain Link" href="#Page%20Should%20Not%20Contain%20Link" title="Link to this keyword">Page Should Not Contain Link</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies link identified by <code>locator</code> is not found from current page.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id</code>, <code>name</code>, <code>href</code> and the link text.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain List" href="#Page%20Should%20Not%20Contain%20List" title="Link to this keyword">Page Should Not Contain List</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies selection list <code>locator</code> is not found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain Radio Button" href="#Page%20Should%20Not%20Contain%20Radio%20Button" title="Link to this keyword">Page Should Not Contain Radio Button</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies radio button <code>locator</code> is not found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id</code>, <code>name</code> and <code>value</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Page Should Not Contain Textfield" href="#Page%20Should%20Not%20Contain%20Textfield" title="Link to this keyword">Page Should Not Contain Textfield</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies text field <code>locator</code> is not found from current page.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about <code>message</code> and <code>loglevel</code> arguments.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Press Key" href="#Press%20Key" title="Link to this keyword">Press Key</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>key</span>                      </td>                  <td class="doc"><p>Simulates user pressing key on element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>key</code> is either a single character, a string, or a numerical ASCII code of the key lead by '\\'.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Press%20Key" class="name">Press Key</a></td>
<td>text_field</td>
<td>q</td>
<td></td>
</tr>
<tr>
<td><a href="#Press%20Key" class="name">Press Key</a></td>
<td>text_field</td>
<td>abcde</td>
<td></td>
</tr>
<tr>
<td><a href="#Press%20Key" class="name">Press Key</a></td>
<td>login_button</td>
<td>\\13</td>
<td># ASCII code for enter key</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Radio Button Should Be Set To" href="#Radio%20Button%20Should%20Be%20Set%20To" title="Link to this keyword">Radio Button Should Be Set To</a>         </td>         <td class="args">                          <span>group_name</span>,                           <span>value</span>                      </td>                  <td class="doc"><p>Verifies radio button group <code>group_name</code> is set to <code>value</code>.</p>
<p><code>group_name</code> is the <code>name</code> of the radio button group.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Radio Button Should Not Be Selected" href="#Radio%20Button%20Should%20Not%20Be%20Selected" title="Link to this keyword">Radio Button Should Not Be Selected</a>         </td>         <td class="args">                          <span>group_name</span>                      </td>                  <td class="doc"><p>Verifies radio button group <code>group_name</code> has no selection.</p>
<p><code>group_name</code> is the <code>name</code> of the radio button group.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Register Keyword To Run On Failure" href="#Register%20Keyword%20To%20Run%20On%20Failure" title="Link to this keyword">Register Keyword To Run On Failure</a>         </td>         <td class="args">                          <span>keyword</span>                      </td>                  <td class="doc"><p>Sets the keyword to execute when a Selenium2Library keyword fails.</p>
<p><code>keyword</code> is the name of a keyword that will be executed 
if a Selenium2Library keyword fails. It is possible to use any available
 keyword, including user keywords or keywords from other libraries, but 
the keyword must not take any arguments.</p>
<p>The initial keyword to use is set when <a href="#Importing" class="name">importing</a> the library, and the keyword that is used by default is <a href="#Capture%20Page%20Screenshot" class="name">Capture Page Screenshot</a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.</p>
<p>It is possible to use string <code>NOTHING</code> or <code>NONE</code>, case-insensitively, as well as Python <code>None</code> to disable this feature altogether.</p>
<p>This keyword returns the name of the previously registered failure keyword or Python <code>None</code> if this functionality was previously disabled. The return value can be always used to restore the original value later.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Register%20Keyword%20To%20Run%20On%20Failure" class="name">Register Keyword To Run On Failure</a></td>
<td>Log Source</td>
<td></td>
</tr>
<tr>
<td>${previous kw}=</td>
<td><a href="#Register%20Keyword%20To%20Run%20On%20Failure" class="name">Register Keyword To Run On Failure</a></td>
<td>NONE</td>
</tr>
<tr>
<td><a href="#Register%20Keyword%20To%20Run%20On%20Failure" class="name">Register Keyword To Run On Failure</a></td>
<td>${previous kw}</td>
<td></td>
</tr>
</tbody></table>
<p>Changes in Selenium2Library 3.0:</p>
<ul>
<li>Possible to use string <code>NONE</code> or Python <code>None</code> to disable the functionality.</li>
<li>Return Python <code>None</code> when the functionality was disabled earlier. In previous versions special value <code>No Keyword</code> was returned and it could not be used to restore the original state.</li>
</ul></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Reload Page" href="#Reload%20Page" title="Link to this keyword">Reload Page</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Simulates user reloading page.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Remove Location Strategy" href="#Remove%20Location%20Strategy" title="Link to this keyword">Remove Location Strategy</a>         </td>         <td class="args">                          <span>strategy_name</span>                      </td>                  <td class="doc"><p>Removes a previously added custom location strategy.</p>
<p>See <a href="#Custom%20locators" class="name">Custom locators</a> for information how to create and use custom strategies.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select All From List" href="#Select%20All%20From%20List" title="Link to this keyword">Select All From List</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Selects all options from multi-selection list <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select Checkbox" href="#Select%20Checkbox" title="Link to this keyword">Select Checkbox</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Selects checkbox identified by <code>locator</code>.</p>
<p>Does nothing if checkbox is already selected.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select Frame" href="#Select%20Frame" title="Link to this keyword">Select Frame</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Sets frame identified by <code>locator</code> as the current frame.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Works both with frames and iframes. Use <a href="#Unselect%20Frame" class="name">Unselect Frame</a> to cancel the frame selection and return to the main frame.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Select%20Frame" class="name">Select Frame</a></td>
<td>top-frame</td>
<td># Select frame with id or name 'top-frame'</td>
</tr>
<tr>
<td><a href="#Click%20Link" class="name">Click Link</a></td>
<td>example</td>
<td># Click link 'example' in the selected frame</td>
</tr>
<tr>
<td><a href="#Unselect%20Frame" class="name">Unselect Frame</a></td>
<td></td>
<td># Back to main frame.</td>
</tr>
<tr>
<td><a href="#Select%20Frame" class="name">Select Frame</a></td>
<td>//iframe[@name='xxx']</td>
<td># Select frame using xpath</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select From List" href="#Select%20From%20List" title="Link to this keyword">Select From List</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*options</span>                      </td>                  <td class="doc"><p>Deprecated. Use <span class="name">Select From List By Label/Value/Index</span> instead.</p>
<p>This keyword selects options based on labels or values, which makes 
it very complicated and slow. It has been deprecated in Selenium2Library
 3.0, and dedicated keywords <a href="#Select%20From%20List%20By%20Label" class="name">Select From List By Label</a>, <a href="#Select%20From%20List%20By%20Value" class="name">Select From List By Value</a> and <a href="#Select%20From%20List%20By%20Index" class="name">Select From List By Index</a> should be used instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select From List By Index" href="#Select%20From%20List%20By%20Index" title="Link to this keyword">Select From List By Index</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*indexes</span>                      </td>                  <td class="doc"><p>Selects options from selection list <code>locator</code> by <code>indexes</code>.</p>
<p>Indexes of list options start from 0.</p>
<p>If more than one option is given for a single-selection list, the 
last value will be selected. With multi-selection lists all specified 
options are selected, but possible old selections are not cleared.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select From List By Label" href="#Select%20From%20List%20By%20Label" title="Link to this keyword">Select From List By Label</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*labels</span>                      </td>                  <td class="doc"><p>Selects options from selection list <code>locator</code> by <code>labels</code>.</p>
<p>If more than one option is given for a single-selection list, the 
last value will be selected. With multi-selection lists all specified 
options are selected, but possible old selections are not cleared.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select From List By Value" href="#Select%20From%20List%20By%20Value" title="Link to this keyword">Select From List By Value</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*values</span>                      </td>                  <td class="doc"><p>Selects options from selection list <code>locator</code> by <code>values</code>.</p>
<p>If more than one option is given for a single-selection list, the 
last value will be selected. With multi-selection lists all specified 
options are selected, but possible old selections are not cleared.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select Radio Button" href="#Select%20Radio%20Button" title="Link to this keyword">Select Radio Button</a>         </td>         <td class="args">                          <span>group_name</span>,                           <span>value</span>                      </td>                  <td class="doc"><p>Sets radio button group <code>group_name</code> to <code>value</code>.</p>
<p>The radio button to be selected is located by two arguments:</p>
<ul>
<li><code>group_name</code> is the name of the radio button group.</li>
<li><code>value</code> is the <code>id</code> or <code>value</code> attribute of the actual radio button.</li>
</ul>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Select%20Radio%20Button" class="name">Select Radio Button</a></td>
<td>size</td>
<td>XL</td>
</tr>
<tr>
<td><a href="#Select%20Radio%20Button" class="name">Select Radio Button</a></td>
<td>contact</td>
<td>email</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Select Window" href="#Select%20Window" title="Link to this keyword">Select Window</a>         </td>         <td class="args">                          <span>locator=MAIN</span>                      </td>                  <td class="doc"><p>Selects browser window matching <code>locator</code>.</p>
<p>If the window is found, all subsequent commands use the selected 
window, until this keyword is used again. If the window is not found, 
this keyword fails. The previous window handle is returned, and can be 
used to return back to it later.</p>
<p>Notice that in this context <i>window</i> means a pop-up window opened when doing something on an existing window. It is not possible to select windows opened with <a href="#Open%20Browser" class="name">Open Browser</a>, <a href="#Switch%20Browser" class="name">Switch Browser</a> must be used instead. Notice also that alerts should be handled with <a href="#Handle%20Alert" class="name">Handle Alert</a> or other alert related keywords.</p>
<p>The <code>locator</code> can be specified using different strategies somewhat similarly as when <a href="#Locating%20elements" class="name">locating elements</a> on pages.</p>
<ul>
<li>By default the <code>locator</code> is matched against window 
handle, name, title, and URL. Matching is done in that order and the the
 first matching window is selected.</li>
</ul>
<ul>
<li>The <code>locator</code> can specify an explicit strategy by using format <code>strategy:value</code> (recommended) or <code>strategy=value</code>. Supported strategies are <code>name</code>, <code>title</code> and <code>url</code>, which match windows using name, title, and URL, respectively. Additionally, <code>default</code> can be used to explicitly use the default strategy explained above.</li>
</ul>
<ul>
<li>If the <code>locator</code> is <code>NEW</code> (case-insensitive), the latest opened window is selected. It is an error if this is the same as the current window.</li>
</ul>
<ul>
<li>If the <code>locator</code> is <code>MAIN</code> (default, case-insensitive), the main window is selected.</li>
</ul>
<ul>
<li>If the <code>locator</code> is <code>CURRENT</code> (case-insensitive), nothing is done. This effectively just returns the current window handle.</li>
</ul>
<ul>
<li>If the <code>locator</code> is not a string, it is expected to be a list of window handles <i>to exclude</i>. Such a list of excluded windows can be get from <a href="#Get%20Window%20Handles" class="name">Get Window Handles</a> prior to doing an action that opens a new window.</li>
</ul>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Click%20Link" class="name">Click Link</a></td>
<td>popup1</td>
<td></td>
<td># Open new window</td>
</tr>
<tr>
<td><a href="#Select%20Window" class="name">Select Window</a></td>
<td>example</td>
<td></td>
<td># Select window using default strategy</td>
</tr>
<tr>
<td><a href="#Title%20Should%20Be" class="name">Title Should Be</a></td>
<td>Pop-up 1</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Click%20Button" class="name">Click Button</a></td>
<td>popup2</td>
<td></td>
<td># Open another window</td>
</tr>
<tr>
<td>${handle} =</td>
<td><a href="#Select%20Window" class="name">Select Window</a></td>
<td>NEW</td>
<td># Select latest opened window</td>
</tr>
<tr>
<td><a href="#Title%20Should%20Be" class="name">Title Should Be</a></td>
<td>Pop-up 2</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Select%20Window" class="name">Select Window</a></td>
<td>${handle}</td>
<td></td>
<td># Select window using handle</td>
</tr>
<tr>
<td><a href="#Title%20Should%20Be" class="name">Title Should Be</a></td>
<td>Pop-up 1</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Select%20Window" class="name">Select Window</a></td>
<td>MAIN</td>
<td></td>
<td># Select the main window</td>
</tr>
<tr>
<td><a href="#Title%20Should%20Be" class="name">Title Should Be</a></td>
<td>Main</td>
<td></td>
<td></td>
</tr>
<tr>
<td>${excludes} =</td>
<td><a href="#Get%20Window%20Handles" class="name">Get Window Handles</a></td>
<td></td>
<td># Get list of current windows</td>
</tr>
<tr>
<td><a href="#Click%20Link" class="name">Click Link</a></td>
<td>popup3</td>
<td></td>
<td># Open one more window</td>
</tr>
<tr>
<td><a href="#Select%20Window" class="name">Select Window</a></td>
<td>${excludes}</td>
<td></td>
<td># Select window using excludes</td>
</tr>
<tr>
<td><a href="#Title%20Should%20Be" class="name">Title Should Be</a></td>
<td>Pop-up 3</td>
<td></td>
<td></td>
</tr>
</tbody></table>
<p><b>NOTE:</b></p>
<ul>
<li>The <code>strategy:value</code> syntax is only supported by Selenium2Library 3.0 and newer.</li>
<li>Earlier versions supported aliases <code>None</code>, <code>null</code> and the empty string for selecting the main window, and alias <code>self</code> for selecting the current window. These aliases were deprecated in Selenium2Library 3.0.</li>
<li>Prior to Selenium2Library 3.0 matching windows by name, title and URL was case-insensitive.</li>
</ul></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Browser Implicit Wait" href="#Set%20Browser%20Implicit%20Wait" title="Link to this keyword">Set Browser Implicit Wait</a>         </td>         <td class="args">                          <span>value</span>                      </td>                  <td class="doc"><p>Sets the implicit wait value used by Selenium.</p>
<p>Same as <a href="#Set%20Selenium%20Implicit%20Wait" class="name">Set Selenium Implicit Wait</a> but only affects the current browser.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Focus To Element" href="#Set%20Focus%20To%20Element" title="Link to this keyword">Set Focus To Element</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Sets focus to element identified by <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Prior to Selenium2Library 3.0 this keyword was named <a href="#Focus" class="name">Focus</a>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Screenshot Directory" href="#Set%20Screenshot%20Directory" title="Link to this keyword">Set Screenshot Directory</a>         </td>         <td class="args">                          <span>path</span>,                           <span>persist=DEPRECATED</span>                      </td>                  <td class="doc"><p>Sets the directory for captured screenshots.</p>
<p><code>path</code> argument specifies the absolute path to a directory
 where the screenshots should be written to. If the directory does not 
exist, it will be created. The directory can also be set when <a href="#Importing" class="name">importing</a>
 the library. If it is not configured anywhere, screenshots are saved to
 the same directory where Robot Framework's log file is written.</p>
<p><code>persist</code> argument is deprecated and has no effect.</p>
<p>The previous value is returned and can be used to restore the original value later if needed.</p>
<p>Deprecating <code>persist</code> and returning the previous value are new in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Selenium Implicit Wait" href="#Set%20Selenium%20Implicit%20Wait" title="Link to this keyword">Set Selenium Implicit Wait</a>         </td>         <td class="args">                          <span>value</span>                      </td>                  <td class="doc"><p>Sets the implicit wait value used by Selenium.</p>
<p>The value can be given as a number that is considered to be seconds or as a human readable string like <code>1 second</code>. The previous value is returned and can be used to restore the original value later if needed.</p>
<p>This keyword sets the implicit wait for all opened browsers. Use <a href="#Set%20Browser%20Implicit%20Wait" class="name">Set Browser Implicit Wait</a> to set it only to the current browser.</p>
<p>See the <a href="#Implicit%20wait" class="name">Implicit wait</a> section above for more information.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${orig wait} =</td>
<td><a href="#Set%20Selenium%20Implicit%20Wait" class="name">Set Selenium Implicit Wait</a></td>
<td>10 seconds</td>
</tr>
<tr>
<td><span class="name">Perform AJAX call that is slow</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Set%20Selenium%20Implicit%20Wait" class="name">Set Selenium Implicit Wait</a></td>
<td>${orig wait}</td>
<td></td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Selenium Speed" href="#Set%20Selenium%20Speed" title="Link to this keyword">Set Selenium Speed</a>         </td>         <td class="args">                          <span>value</span>                      </td>                  <td class="doc"><p>Sets the delay that is waited after each Selenium command.</p>
<p>The value can be given as a number that is considered to be seconds or as a human readable string like <code>1 second</code>. The previous value is returned and can be used to restore the original value later if needed.</p>
<p>See the <a href="#Selenium%20speed" class="name">Selenium Speed</a> section above for more information.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Set%20Selenium%20Speed" class="name">Set Selenium Speed</a></td>
<td>0.5 seconds</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Selenium Timeout" href="#Set%20Selenium%20Timeout" title="Link to this keyword">Set Selenium Timeout</a>         </td>         <td class="args">                          <span>value</span>                      </td>                  <td class="doc"><p>Sets the timeout that is used by various keywords.</p>
<p>The value can be given as a number that is considered to be seconds or as a human readable string like <code>1 second</code>. The previous value is returned and can be used to restore the original value later if needed.</p>
<p>See the <a href="#Timeout" class="name">Timeout</a> section above for more information.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td>${orig timeout} =</td>
<td><a href="#Set%20Selenium%20Timeout" class="name">Set Selenium Timeout</a></td>
<td>15 seconds</td>
</tr>
<tr>
<td><span class="name">Open page that loads slowly</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Set%20Selenium%20Timeout" class="name">Set Selenium Timeout</a></td>
<td>${orig timeout}</td>
<td></td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Window Position" href="#Set%20Window%20Position" title="Link to this keyword">Set Window Position</a>         </td>         <td class="args">                          <span>x</span>,                           <span>y</span>                      </td>                  <td class="doc"><p>Sets window position using <code>x</code> and <code>y</code> coordinates.</p>
<p>The position is relative to the top left corner of the screen, but 
some browsers exclude possible task bar set by the operating system from
 the calculation. The actual position may thus be different with 
different browsers.</p>
<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href="#Get%20Window%20Position" class="name">Get Window Position</a>.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Set%20Window%20Position" class="name">Set Window Position</a></td>
<td>100</td>
<td>200</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Set Window Size" href="#Set%20Window%20Size" title="Link to this keyword">Set Window Size</a>         </td>         <td class="args">                          <span>width</span>,                           <span>height</span>                      </td>                  <td class="doc"><p>Sets current windows size to given <code>width</code> and <code>height</code>.</p>
<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href="#Get%20Window%20Size" class="name">Get Window Size</a>.</p>
<p>Browsers have a limit how small they can be set. Trying to set them 
smaller will cause the actual size to be bigger than the requested size.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Set%20Window%20Size" class="name">Set Window Size</a></td>
<td>800</td>
<td>600</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Simulate" href="#Simulate" title="Link to this keyword">Simulate</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>event</span>                      </td>                  <td class="doc"><p>Deprecated. Use <a href="#Simulate%20Event" class="name">Simulate Event</a> instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Simulate Event" href="#Simulate%20Event" title="Link to this keyword">Simulate Event</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>event</span>                      </td>                  <td class="doc"><p>Simulates <code>event</code> on element identified by <code>locator</code>.</p>
<p>This keyword is useful if element has <code>OnEvent</code> handler that needs to be explicitly invoked.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Prior to Selenium2Library 3.0 this keyword was named <a href="#Simulate" class="name">Simulate</a>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Submit Form" href="#Submit%20Form" title="Link to this keyword">Submit Form</a>         </td>         <td class="args">                          <span>locator=None</span>                      </td>                  <td class="doc"><p>Submits a form identified by <code>locator</code>.</p>
<p>If <code>locator</code> is not given, first form on the page is submitted.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Switch Browser" href="#Switch%20Browser" title="Link to this keyword">Switch Browser</a>         </td>         <td class="args">                          <span>index_or_alias</span>                      </td>                  <td class="doc"><p>Switches between active browsers using <code>index_or_alias</code>.</p>
<p>Indices are returned by the <a href="#Open%20Browser" class="name">Open Browser</a> keyword and aliases can be given to it explicitly. Indices start from 1.</p>
<p>Example:</p>
<table border="1">
<tbody><tr>
<td><a href="#Open%20Browser" class="name">Open Browser</a></td>
<td><a href="http://google.com/">http://google.com</a></td>
<td>ff</td>
<td></td>
</tr>
<tr>
<td><a href="#Location%20Should%20Be" class="name">Location Should Be</a></td>
<td><a href="http://google.com/">http://google.com</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Open%20Browser" class="name">Open Browser</a></td>
<td><a href="http://yahoo.com/">http://yahoo.com</a></td>
<td>ie</td>
<td>alias=second</td>
</tr>
<tr>
<td><a href="#Location%20Should%20Be" class="name">Location Should Be</a></td>
<td><a href="http://yahoo.com/">http://yahoo.com</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Switch%20Browser" class="name">Switch Browser</a></td>
<td>1</td>
<td># index</td>
<td></td>
</tr>
<tr>
<td><a href="#Page%20Should%20Contain" class="name">Page Should Contain</a></td>
<td>I'm feeling lucky</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Switch%20Browser" class="name">Switch Browser</a></td>
<td>second</td>
<td># alias</td>
<td></td>
</tr>
<tr>
<td><a href="#Page%20Should%20Contain" class="name">Page Should Contain</a></td>
<td>More Yahoo!</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Close%20All%20Browsers" class="name">Close All Browsers</a></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<p>Above example expects that there was no other open browsers when opening the first one because it used index <code>1</code> when switching to it later. If you are not sure about that, you can store the index into a variable as below.</p>
<table border="1">
<tbody><tr>
<td>${index} =</td>
<td><a href="#Open%20Browser" class="name">Open Browser</a></td>
<td><a href="http://google.com/">http://google.com</a></td>
</tr>
<tr>
<td># Do something ...</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="#Switch%20Browser" class="name">Switch Browser</a></td>
<td>${index}</td>
<td></td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Table Cell Should Contain" href="#Table%20Cell%20Should%20Contain" title="Link to this keyword">Table Cell Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>row</span>,                           <span>column</span>,                           <span>expected</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies table cell contains text <code>expected</code>.</p>
<p>See <a href="#Get%20Table%20Cell" class="name">Get Table Cell</a> that this keyword uses internally for explanation about accepted arguments.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Table Column Should Contain" href="#Table%20Column%20Should%20Contain" title="Link to this keyword">Table Column Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>column</span>,                           <span>expected</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies table column contains text <code>expected</code>.</p>
<p>The table is located using the <code>locator</code> argument and its column found using <code>column</code>. See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Column indexes start from 1. It is possible to refer to columns from 
the end by using negative indexes so that -1 is the last column, -2 is 
the second last, and so on.</p>
<p>If a table contains cells that span multiple columns, those merged cells count as a single column.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Table Footer Should Contain" href="#Table%20Footer%20Should%20Contain" title="Link to this keyword">Table Footer Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies table footer contains text <code>expected</code>.</p>
<p>Any <code>&lt;td&gt;</code> element inside <code>&lt;tfoot&gt;</code> element is considered to be part of the footer.</p>
<p>The table is located using the <code>locator</code> argument. See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Table Header Should Contain" href="#Table%20Header%20Should%20Contain" title="Link to this keyword">Table Header Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies table header contains text <code>expected</code>.</p>
<p>Any <code>&lt;th&gt;</code> element anywhere in the table is considered to be part of the header.</p>
<p>The table is located using the <code>locator</code> argument. See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Table Row Should Contain" href="#Table%20Row%20Should%20Contain" title="Link to this keyword">Table Row Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>row</span>,                           <span>expected</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies that table row contains text <code>expected</code>.</p>
<p>The table is located using the <code>locator</code> argument and its column found using <code>column</code>. See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>Row indexes start from 1. It is possible to refer to rows from the 
end by using negative indexes so that -1 is the last row, -2 is the 
second last, and so on.</p>
<p>If a table contains cells that span multiple rows, a match only occurs for the uppermost row of those merged cells.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Table Should Contain" href="#Table%20Should%20Contain" title="Link to this keyword">Table Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Verifies table contains text <code>expected</code>.</p>
<p>The table is located using the <code>locator</code> argument. See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>See <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> for explanation about the <code>loglevel</code> argument.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Textarea Should Contain" href="#Textarea%20Should%20Contain" title="Link to this keyword">Textarea Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies text area <code>locator</code> contains text <code>expected</code>.</p>
<p><code>message</code> can be used to override default error message.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Textarea Value Should Be" href="#Textarea%20Value%20Should%20Be" title="Link to this keyword">Textarea Value Should Be</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies text area <code>locator</code> has exactly text <code>expected</code>.</p>
<p><code>message</code> can be used to override default error message.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Textfield Should Contain" href="#Textfield%20Should%20Contain" title="Link to this keyword">Textfield Should Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies text field <code>locator</code> contains text <code>expected</code>.</p>
<p><code>message</code> can be used to override the default error message.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Textfield Value Should Be" href="#Textfield%20Value%20Should%20Be" title="Link to this keyword">Textfield Value Should Be</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>expected</span>,                           <span>message=None</span>                      </td>                  <td class="doc"><p>Verifies text field <code>locator</code> has exactly text <code>expected</code>.</p>
<p><code>message</code> can be used to override default error message.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Title Should Be" href="#Title%20Should%20Be" title="Link to this keyword">Title Should Be</a>         </td>         <td class="args">                          <span>title</span>                      </td>                  <td class="doc"><p>Verifies that current page title equals <code>title</code>.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Unselect All From List" href="#Unselect%20All%20From%20List" title="Link to this keyword">Unselect All From List</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Unselects all options from multi-selection list <code>locator</code>.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p>New in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Unselect Checkbox" href="#Unselect%20Checkbox" title="Link to this keyword">Unselect Checkbox</a>         </td>         <td class="args">                          <span>locator</span>                      </td>                  <td class="doc"><p>Removes selection of checkbox identified by <code>locator</code>.</p>
<p>Does nothing if the checkbox is not selected.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Unselect Frame" href="#Unselect%20Frame" title="Link to this keyword">Unselect Frame</a>         </td>         <td class="args">                      </td>                  <td class="doc"><p>Sets the main frame as the current frame.</p>
<p>In practice cancels the previous <a href="#Select%20Frame" class="name">Select Frame</a> call.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Unselect From List" href="#Unselect%20From%20List" title="Link to this keyword">Unselect From List</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*items</span>                      </td>                  <td class="doc"><p>Deprecated. Use <span class="name">Unselect From List By Label/Value/Index</span> instead.</p>
<p>This keyword unselects options based on labels or values, which makes
 it very complicated and slow. It has been deprecated in 
Selenium2Library 3.0, and dedicated keywords <a href="#Unselect%20From%20List%20By%20Label" class="name">Unselect From List By Label</a>, <a href="#Unselect%20From%20List%20By%20Value" class="name">Unselect From List By Value</a> and <a href="#Unselect%20From%20List%20By%20Index" class="name">Unselect From List By Index</a> should be used instead.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Unselect From List By Index" href="#Unselect%20From%20List%20By%20Index" title="Link to this keyword">Unselect From List By Index</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*indexes</span>                      </td>                  <td class="doc"><p>Unselects options from selection list <code>locator</code> by <code>indexes</code>.</p>
<p>Indexes of list options start from 0. This keyword works only with multi-selection lists.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Unselect From List By Label" href="#Unselect%20From%20List%20By%20Label" title="Link to this keyword">Unselect From List By Label</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*labels</span>                      </td>                  <td class="doc"><p>Unselects options from selection list <code>locator</code> by <code>labels</code>.</p>
<p>This keyword works only with multi-selection lists.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Unselect From List By Value" href="#Unselect%20From%20List%20By%20Value" title="Link to this keyword">Unselect From List By Value</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>*values</span>                      </td>                  <td class="doc"><p>Unselects options from selection list <code>locator</code> by <code>values</code>.</p>
<p>This keyword works only with multi-selection lists.</p>
<p>See the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait For Condition" href="#Wait%20For%20Condition" title="Link to this keyword">Wait For Condition</a>         </td>         <td class="args">                          <span>condition</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until <code>condition</code> is true or <code>timeout</code> expires.</p>
<p>The condition can be arbitrary JavaScript expression but it must return a value to be evaluated. See <a href="#Execute%20Javascript" class="name">Execute JavaScript</a> for information about accessing content on pages.</p>
<p>Fails if the timeout expires before the condition becomes true. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value.</p>
<p><code>error</code> can be used to override the default error message.</p>
<p>Examples:</p>
<table border="1">
<tbody><tr>
<td><a href="#Wait%20For%20Condition" class="name">Wait For Condition</a></td>
<td>return document.title == "New Title"</td>
</tr>
<tr>
<td><a href="#Wait%20For%20Condition" class="name">Wait For Condition</a></td>
<td>return jQuery.active == 0</td>
</tr>
<tr>
<td><a href="#Wait%20For%20Condition" class="name">Wait For Condition</a></td>
<td>style = document.querySelector('h1').style; return style.background == "red" &amp;&amp; style.color == "white"</td>
</tr>
</tbody></table></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Element Contains" href="#Wait%20Until%20Element%20Contains" title="Link to this keyword">Wait Until Element Contains</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>text</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until element <code>locator</code> contains <code>text</code>.</p>
<p>Fails if <code>timeout</code> expires before the text appears. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value and the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Element Does Not Contain" href="#Wait%20Until%20Element%20Does%20Not%20Contain" title="Link to this keyword">Wait Until Element Does Not Contain</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>text</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until element <code>locator</code> does not contain <code>text</code>.</p>
<p>Fails if <code>timeout</code> expires before the text disappears. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value and the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Element Is Enabled" href="#Wait%20Until%20Element%20Is%20Enabled" title="Link to this keyword">Wait Until Element Is Enabled</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until element <code>locator</code> is enabled.</p>
<p>Element is considered enabled if it is not disabled nor read-only.</p>
<p>Fails if <code>timeout</code> expires before the element is enabled. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value and the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>error</code> can be used to override the default error message.</p>
<p>Considering read-only elements to be disabled is a new feature in Selenium2Library 3.0.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Element Is Not Visible" href="#Wait%20Until%20Element%20Is%20Not%20Visible" title="Link to this keyword">Wait Until Element Is Not Visible</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until element <code>locator</code> is not visible.</p>
<p>Fails if <code>timeout</code> expires before the element is not visible. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value and the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Element Is Visible" href="#Wait%20Until%20Element%20Is%20Visible" title="Link to this keyword">Wait Until Element Is Visible</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until element <code>locator</code> is visible.</p>
<p>Fails if <code>timeout</code> expires before the element is visible. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value and the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Page Contains" href="#Wait%20Until%20Page%20Contains" title="Link to this keyword">Wait Until Page Contains</a>         </td>         <td class="args">                          <span>text</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until <code>text</code> appears on current page.</p>
<p>Fails if <code>timeout</code> expires before the text appears. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Page Contains Element" href="#Wait%20Until%20Page%20Contains%20Element" title="Link to this keyword">Wait Until Page Contains Element</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until element <code>locator</code> appears on current page.</p>
<p>Fails if <code>timeout</code> expires before the element appears. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value and the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Page Does Not Contain" href="#Wait%20Until%20Page%20Does%20Not%20Contain" title="Link to this keyword">Wait Until Page Does Not Contain</a>         </td>         <td class="args">                          <span>text</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until <code>text</code> disappears from current page.</p>
<p>Fails if <code>timeout</code> expires before the text disappears. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Wait Until Page Does Not Contain Element" href="#Wait%20Until%20Page%20Does%20Not%20Contain%20Element" title="Link to this keyword">Wait Until Page Does Not Contain Element</a>         </td>         <td class="args">                          <span>locator</span>,                           <span>timeout=None</span>,                           <span>error=None</span>                      </td>                  <td class="doc"><p>Waits until element <code>locator</code> disappears from current page.</p>
<p>Fails if <code>timeout</code> expires before the element disappears. See the <span class="name">Timeouts</span> section for more information about using timeouts and their default value and the <a href="#Locating%20elements" class="name">Locating elements</a> section for details about the locator syntax.</p>
<p><code>error</code> can be used to override the default error message.</p></td>     </tr>                      <tr class="kw-row match">         <td class="kw">             <a name="Xpath Should Match X Times" href="#Xpath%20Should%20Match%20X%20Times" title="Link to this keyword">Xpath Should Match X Times</a>         </td>         <td class="args">                          <span>xpath</span>,                           <span>x</span>,                           <span>message=None</span>,                           <span>loglevel=INFO</span>                      </td>                  <td class="doc"><p>Deprecated, use <a href="#Page%20Should%20Contain%20Element" class="name">Page Should Contain Element</a> with <code>limit</code> argument instead.</p></td>     </tr>              </tbody></table></div>     <div id="footer-container"><p class="footer">         <span id="altogether-count">Altogether 176 keywords.</span>         <span id="match-count"></span>         <br>         Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on 2017-12-04 13:48:01.     </p></div>     <form id="search" action="javascript:void(0)">         <fieldset>             <legend id="search-title">Search keywords</legend>             <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">             <fieldset>                 <legend>Search from</legend>                 <input type="checkbox" id="include-name" onclick="doSearch()" checked="checked">                 <label for="include-name">Name</label>                 <input type="checkbox" id="include-args" onclick="doSearch()" checked="checked">                 <label for="include-args">Arguments</label>                 <input type="checkbox" id="include-doc" onclick="doSearch()" checked="checked">                 <label for="include-doc">Documentation</label>                              </fieldset>             <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked="checked">             <label for="hide-unmatched">Hide unmatched keywords</label>             <div id="search-buttons">                 <input type="button" value="Reset" onclick="resetSearch()" title="Reset search">                 <input type="button" value="Close" onclick="closeSearch()" title="Close search (shortcut: &lt;Esc&gt;)">             </div>         </fieldset>     </form>     <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div></body></html>